【发布时间】:2011-10-23 20:34:52
【问题描述】:
我正在尝试将 WPF 中的数据网格绑定到我的 ViewModel,以便它将更新对数据库的任何单元格更改,并允许用户删除行和添加新行。我已经完成了部分工作,但找不到 ADD 和修改的优雅解决方案。 这是xml
<DataGrid AutoGenerateColumns="false" HorizontalAlignment="Left" Margin="26,41,0,0" Name="dataGrid1"
ItemsSource="{Binding Path=GetAllItems}" Height="200" VerticalAlignment="Top" Width="266" >
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Path=ItemListID}" Header="ID" Visibility="Hidden"/>
<DataGridTextColumn Binding="{Binding Path=ItemName}" Header="Name" Width="4*" />
<DataGridCheckBoxColumn Binding="{Binding Path=IsActive}" Header="Active" Width="*" />
</DataGrid.Columns>
然后在我的视图模型方法中
private ObservableCollection< ItemsList> getAllItems()
{
using (var context = new InspectorGeneralEntities())
{
var query = from I in context.ItemsLists
select I;
var item = new ObservableCollection<ItemsList>(query.ToList());
return item;
}
}
在数据网格上删除一行或修改一行不会流入数据库。
a) 我需要在 xaml 代码中创建什么其他绑定来检测这些事件
b) 我如何检测视图模型中已删除的记录或修改的项目,以便在数据上下文不会自动更新时更新它。
【问题讨论】: