我遇到了设计模式 MVVM 的问题。在我的视图中,我得到了一个绑定到我的视图模型中的数据表的 Datagrid。
<WPF:BADataGrid Grid.Column="1" x:Name="dgStapelliste" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" ItemsSource="{Binding Stapelliste, Mode=OneWay}"/>
在视图模型的构造函数中,我加载了 ItemsSource。
this.StapelListe = this._stapel.Get();
如果我在运行时通过按钮添加一些额外的行,一切正常。但我不想按下按钮来刷新数据网格,我希望它在线程或后台工作人员中自动发生。
这是一些测试示例:
BackgroundWorker worker = new BackgroundWorker();
worker.DoWork += delegate(object s, DoWorkEventArgs args)
{
while (true)
{
Thread.Sleep(5000);
DataRow row = this.StapelListe.NewRow();
row["StapelNr"] = 123456;
this.StapelListe.Rows.Add(row);
}
};
这不起作用......我不知道为什么......这些行被添加到数据表“StapelListe”中,但数据网格不会自行刷新......
如果我在线程中更改数据表中的现有行,它会起作用!它只是不适用于从集合中添加或删除行。
有人知道为什么会发生这种情况和/或如何解决它?
亲切的问候...