我的主窗口中有一个public void grid_refresh()
方法,用于刷新我的DataGrid(主窗口的DataGrid)。现在我有另一个类(Window),它将新元素添加到Datagrid。我没做的就是访问这个grid_refresh
方法,当我从其他窗口(添加窗口)点击添加按钮时,用新条目刷新网格。
主窗口代码:
打开AddBook窗口的方法:
private void AddBuch(object sender, RoutedEventArgs e)
{
if (Title == "Dictionary")
{
MessageBox.Show("Wählen Sie zuerst unter Ansicht eine Kategorie aus!");
}
else
{
addBuch addbuch = new addBuch(this);
addbuch.Show();
//do { } while (addbuch.ShowDialog() == true);
}
}
我想要访问的方法:
public void liste_aktualisieren()
窗口代码我想从以下位置访问方法:
public partial class addBuch : Window
{
private MainWindow mainWindow;
public addBuch(Window owner)
{
InitializeComponent();
Owner = owner;
SetProperties();
owner.IsEnabled = false;
}
private void btn_add_Click(object sender, RoutedEventArgs e)
{
if (txt_name.Text == "" | txt_isbn.Text == "" | txt_datum.Text == "" | txt_genre.Text == "" | txt_autor.Text == "" | txt_seiten.Text == "")
{
MessageBox.Show("Es sollte allen Feldern ein Wert zugewiesen werden.\nVersuchen Sie es erneut!");
}
else
{
cDictionary.Buch_hinzufuegen(txt_name.Text, txt_isbn.Text, txt_datum.Text, txt_genre.Text, txt_autor.Text, Convert.ToInt32(txt_seiten.Text));
Owner.IsEnabled = true;
//Somewhere here I want to Acess the DataGrid Refresh Method so the Datagrid in the Main Window Refreshes.
}
}
我不确定如何解决这个问题...... 我的目的是刷新按下btn_add_Click的时刻的Datagrid
答案 0 :(得分:0)
由于您正在注入addBuch
窗口并引用MainWindow
,因此您可以通过此引用调用该方法:
public partial class addBuch : Window
{
private MainWindow mainWindow;
public addBuch(MainWindow owner) //<--
{
InitializeComponent();
Owner = owner;
SetProperties();
owner.IsEnabled = false;
mainWindow = owner; //<---
}
private void btn_add_Click(object sender, RoutedEventArgs e)
{
//...
mainWindow.grid_refresh();
}
}