1
我有一个包含可编辑DataGrid的WPF MVVM应用程序。我正在将DG SelectedItem事件订阅到ViewModel中的一个属性中。这适用于修改现有记录并将更改保存到数据库。如何使用DataGrid和MVVM添加行
但是,如何知道何时创建新行?当我点击DG中的新行时,SelectedItem事件不会触发。新行被创建后,我点击一个存在行,SelectedItem事件触发,但EntityState不知道添加了一行。 如何在DG中为我的数据库添加新行?或者,有没有更好的方法来实现这一目标?
这是我目前在做什么:
的XAML:
<DataGrid AutoGenerateColumns="False"
ItemsSource="{Binding ContactList}"
SelectedItem="{Binding SelectedItemContact, UpdateSourceTrigger=PropertyChanged}"
.....>
视图模型:
public Contact SelectedItemContact
{
get { return _selectedItemContact; }
set
{
if (value != _selectedItemContact)
{
bool changesMade = Repository.Context.
ObjectStateManager.
GetObjectStateEntries(EntityState.Added |
EntityState.Deleted |
EntityState.Modified
).Any();
if (changesMade)
{
Repository.Context.SaveChanges();
MessageBox.Show("Changes Saved!");
}
_selectedItemContact = value;
OnPropertyChanged("SelectedItemContact");
}
}
这应该是一个评论。 – 2016-12-21 17:35:42