wpf datagrid比较值宽度另一个来源

时间:2018-12-04 17:19:49

标签: c# wpf wpfdatagrid

我创建一个带有属性的类对象。 我的视图模型具有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);
    }

非常感谢

0 个答案:

没有答案