WPF MVVM 数据绑定到数据网格未更新
我想使用 MVVM XAML 显示 WPF DataGrid 中对象的注释列表
:
<DataGrid
x:Name="NoteGrid"
ItemsSource="{Binding NoteObj.Notes}"
SelectedItem="{Binding CurrentNote}"
AutoGenerateColumns="False"
CanUserAddRows="False"
CellEditEnding="DataGrid_CellEditEnding">
<DataGrid.Columns>
<DataGridTextColumn Header="Note" Binding="{Binding NoteText}" />
<DataGridTextColumn Header="Type" Binding="{Binding Type.Name}" />
</DataGrid.Columns>
</DataGrid>
NoteObj.Notes 的返回值是 EntitySet。
ViewModel:
private NoteObject noteObj;
public NoteObject NoteObj
{
get { return noteObj; }
set { noteObj = value; OnPropertyChanged("NoteObj"); }
}
public void AddNote()
{
var note = new Note
{
NoteText = "Note text",
NoteType = 1
};
NoteObj.Notes.Add(note);
DC.SubmitChanges();
OnPropertyChanged("NoteObj");
}
当设置 NoteObj 时,DataGrid 会填充注释,但 AddNote 方法不起作用! 新注释已添加到数据库中,但 DataGrid 从未更新。
这是 EntitySet 的问题还是我在 XAML 中遗漏了某些内容?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
仅当
NoteObj.Notes
实现INotifyCollectionChanged
。您可以通过使用类ObservableCollection
来实现此目的。This will only work if
NoteObj.Notes
implementsINotifyCollectionChanged
. You can achieve this by using the classObservableCollection<T>
.