如何在WPF中捕获Datagrid's单元格的值变化事件
本文关键字:单元格 事件 变化 WPF Datagrid | 更新日期: 2023-09-27 18:05:23
我使用Datagrid
来显示一些MySQL表。当然,我希望数据网格的变化能够反映在MySQL表中。我已经编写了一个命令来处理Cell value changed event
,但是,该命令没有击中:
<DataGrid x:Name="Table_DataGrid" Grid.Row="0" Grid.Column="0"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0"
ItemsSource="{Binding MyServerWrapViewModel.TableFromMySql,
Source={StaticResource Locator}}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="TargetUpdated">
<cmd:EventToCommand
Command="{Binding updateCell}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</DataGrid>
我认为我听错了事件,因为我的updateCell
没有击中…如何捕捉数据网格的cell value changed event
?
为什么要附加事件?通常,您将针对ObservableCollection中对象的某些属性为您的列创建一个DataBinding。网格单元格中的更改将直接推入绑定到的属性的setter中。从那里,您可以做任何您喜欢的事情,比如写入数据库或设置修改的标志。
我想到一个解决办法了。
首先将相关的ViewModel
添加为DataGrid's DataContext
,否则编译器将不知道在哪里找到绑定命令。
DataContext="{Binding MyServerWrapViewModel,Source={StaticResource Locator}}"
然后将TargetUpdated
更改为CurrentCellChanged