获取数据网格中单元格的前一个值
本文关键字:一个 数据网 数据 网格 单元格 获取 | 更新日期: 2023-09-27 18:04:52
首先为我的英语感到抱歉。我是c#、wpf和这类东西的新手。我使用实体框架,我绑定一个数据网格与ObservableCollection。我需要获取单元格的旧值并将其与新值进行比较。在数据库中,实体具有旧值,因为我没有保存更改。我的问题是,当我尝试执行查找(context.Find(reference.Id);)时,返回查找的元素具有网格的新值。
My XAML has:
<DataGrid x:Name="datagrid" PreviewKeyDown="dataGrid_PreviewKeyDown" AutoGenerateColumns ="False" ItemsSource="{Binding Path=References, ElementName=referenceWindow, Mode=TwoWay}"
我的。cs是这样的:
ObservableCollection<Reference> References = new ObservableCollection<Reference> References(context.References);
如何获得旧值?
谢谢
如何在文件夹属性的setter中触发一个事件,并将旧名称传递给它。或者你可以在setter中调用一个方法做任何你需要发生的事情。我想我的观点是,我相信如果不考虑UI,它会更容易处理。
作为Kik,我会说创建一个方法,当属性或属性被更改时被触发。当我们不知道你在做什么,除了数据绑定时,给出一个例子有点困难。我个人会跳过双向模式,为整个对象创建一个方法。
你可以这样使用RowEditEnding:
<DataGrid x:Name="DataGrid" RowEditEnding="DataGrid_OnRowEditEnding" AutoGenerateColumns="False" Margin="5">
<DataGrid.Columns>
<DataGridTextColumn Header="Name" Binding="{Binding Name, UpdateSourceTrigger=PropertyChanged}"/>
<DataGridTextColumn Header="Age" Binding="{Binding Age, UpdateSourceTrigger=PropertyChanged}"/>
</DataGrid.Columns>
</DataGrid>
然后在代码中像这样:
private void DataGrid_OnRowEditEnding(object sender, DataGridRowEditEndingEventArgs e)
{
var datag = (DataGrid) sender;
var p = (Person) datag.SelectedValue;
var p1 = (Person) e.Row.Item;
Debug.WriteLine(p.Name + ", " + p.Age);
Debug.WriteLine(p1.Name + ", "+ p1.Age);
}
这样,您将拥有数据库项和新项。你可以比较和做你想做的。