Я пытаюсь создать список в mainWindow, и если пользователь хочет добавить элемент, ему сначала нужно открыть окно меню. Из этого окна он переходит в окно с текстовым полем. После нажатия кнопки строка, введенная в текстовое поле, должна быть добавлена в список. Проблема, с которой я сталкиваюсь, заключается в том, что я не могу отправить строку в mainWindow, потому что метод в окне текстового поля должен быть нестатическим c, чтобы он мог прочитать содержимое текстового поля. Таким образом, я не могу добавить строку из текстового поля в ListView из mainWindow.
Я рассмотрел, как отправить строку в mainWindow, не делая ее stati c. Я пробовал:
MainWindow newWnd = new MainWindow();
newWnd.Show();
Это заставляет текст из текстового поля появляться в ListView, но при добавлении другого элемента в ListView первый исчезает. Я мог бы создать способ добавления предыдущих элементов в новое окно, но это будет работать только до определенной степени. Я не хочу открывать новое окно каждый раз, когда пользователь добавляет элемент в ListView. Я хочу добавить элемент в ListView из исходного mainWindow.
Мой код:
MainWindow: XAML:
<ListView Name="ingredientsList"/>
<Button Content="Add +" Click="Button_Click"/>
.cs:
public void Button_Click(object sender, RoutedEventArgs e)
{
//Opens the menu window
Menu popup = new Menu();
popup.ShowDialog();
}
public void AddIngredient(string e)
{
ingredientsList.Items.Add(e);
}
Окно меню открывает окно текстового поля (код не требуется)
Окно текстового поля: XAML:
<TextBox x:Name="Ingredient"/>
<Button Content="Add" Click="Add_Click"/>
<Button Content="Cancel" Height="25" Width="70" Margin="125,150,0,0" Click="Cancel_Click" IsCancel="True"/>
.cs:
public void Add_Click()
{
Window.AddIngredient(Ingredient.Text);
}
private void Cancel_Click(object sender, RoutedEventArgs e)
{
this.Close();
}