Я создаю объект класса со свойствами.Моя viewmodel имеет 2 свойства с коллекцией моего объекта класса: начальную коллекцию и коллекцию для обновления в сетке данных.На мой взгляд, сетка данных обязательна для коллекции моего объекта.Я использую метод AutoGeneratingColumn, чтобы динамически создавать столбцы для свойств моего класса.Моя проблема: я хочу определить различия между значениями двух моих коллекций (начальной и для обновления).Каков наилучший способ реализовать это дело?Создать определенный класс для сетки данных с разностным свойством для каждого свойства?- Другой путь ?Не могли бы вы мне помочь?
Точность: необходимо уметь различать эти 2 коллекции объектов независимо от notifypropertyaled.Эти 2 коллекции находятся в памяти, и при открытии окна я должен определить различия.
Я пытаюсь реализовать это в 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);
}
Большое спасибо