我创建一个带有属性的类对象。 我的视图模型具有2个属性,这些属性带有我的类对象的集合:集合初始值和用于在数据网格中更新的集合。 在我看来,数据网格正在绑定到我的对象的集合上。 我使用AutoGeneratingColumn方法来动态地在类的属性上创建列。 我的问题:我想确定两个集合的值之间的差异(初始值和更新值)。 实施此案例的最佳方法是什么? -为datagrid创建一个特定的类,每个属性具有不同的属性? - 另一种方式 ? 你能帮我吗?
精度:必须能够独立于notifypropertychanged识别这两个对象集合的差异。这两个集合存储在内存中,打开窗口时,我必须找出差异。
我尝试在AutoGeneratingColumn中实现它,但这是不正确的。 行号缺少访问初始类的正确元素
private void DataGrid_AutoGeneratingColumnLandmark(object sender, DataGridAutoGeneratingColumnEventArgs e)
{
Binding binding;
//on ajjoute l'exception validation
DataGridBoundColumn oColumn = e.Column as DataGridBoundColumn;
binding = new Binding(oColumn.Header.ToString());
binding.Mode = BindingMode.TwoWay;
///comparaison entre la source de window et la source initiale
Style columnStyle = new Style();
DataTrigger oDataTrigger = new DataTrigger();
oDataTrigger.Value = false;
MultiBinding oMultiBinding = new MultiBinding();
oMultiBinding.Converter = new CCompareObjectConverter();
oMultiBinding.Bindings.Add(new Binding(oColumn.Header.ToString()));
oMultiBinding.Bindings.Add(new Binding()
{
Path = new PropertyPath("DataContext.ProcInitiale.ProcedureModel." + oColumn.Header.ToString())
,
RelativeSource = new RelativeSource(RelativeSourceMode.FindAncestor, typeof(Window), 1)
});
oDataTrigger.Binding = oMultiBinding;
oDataTrigger.Setters.Add(new Setter() { Property = DataGridCell.ForegroundProperty, Value = new SolidColorBrush(Colors.LightGreen) });
columnStyle.Triggers.Add(oDataTrigger);
oColumn.ElementStyle = columnStyle;
if (oColumn is DataGridTextColumn)
{
oColumn.EditingElementStyle = (Style)FindResource("CellEditStyle");
}
CDataGridColumns<CLandmark> oDataColumn = new CDataGridColumns<CLandmark>();
oDataColumn.ConstDataGridColumn(ref oColumn);
}
非常感谢