我正在使用一个带有网格的窗口,它从MongoDB加载对象。这些对象包含列表。现在我想从其中一个对象加载一个列表。这是窗口的来源:
public void btn_load_Click(object sender, RoutedEventArgs e)
{
MainWindow M = new MainWindow();
ArtikelLaden();
M.RefreshGrid();
Close();
}
public void ArtikelLaden()
{
MainWindow M = new MainWindow();
rowindexArtikel = dg_Artikel.SelectedIndex;
Artikel B = new Artikel();
B = artikelList[rowindexArtikel];
M.loadArtikel(B);
}
列表应在主窗口中加载:
public void loadArtikel(Artikel B)
{
dg_test.ItemsSource = null;
dg_test.ItemsSource = B.kaufList;
dg_test.Items.Refresh();
MessageBox.Show(dg_test.HasItems.ToString());
MessageBox.Show(dg_test.Items.Count.ToString());
dg_Teile.ItemsSource = null;
dg_Teile.ItemsSource =B.teilList;
dg_Teile.Items.Refresh();
//dg_Teile.Items.Refresh();
//dg_BauGrp.ItemsSource = B.bauList ;
}
public void RefreshGrid()
{
//dg_Kaufteile.UpdateLayout();
//dg_Kaufteile.Items.Refresh();
//dg_Teile.UpdateLayout();
MessageBox.Show(dg_Kaufteile.HasItems.ToString());
MessageBox.Show(dg_Kaufteile.Items.Count.ToString());
}
当你在源代码中看到一些奇怪的东西时,只是因为我已经测试了数千种可能性。但是主窗口中的网格总是保持空的。
第一个MsgBox表示网格具有Content。稍后在刷新方法中的第二个MsgBox中,它说它是空的?!
当我在第一个窗口中加载列表时,它就工作了。网格已启用自动列。
1条答案
按热度按时间mo49yndu1#
您正在创建
MainWindow
的新示例,但您可能希望访问屏幕上显示的现有示例。试试这个: