首页 > 解决方案 > 以编程方式使用 wpf 在数据网格中添加用户控件时出现问题

问题描述

我创建了用户控件并使用后面的代码添加到数据网格。对于用户控件,我创建了 2 个构造函数来传递数据以进行显示。

用户控件构造函数:

public OverlayControlView()
        {
            InitializeComponent();
}

public OverlayControlView(string value, List<Function> functionList)
        {
            InitializeComponent();
            OverlayValue = value;
            OverlayMenuItem = functionList;
}

将用户控件添加到数据网格:

var overlayControlView = new OverlayControlView(caption, functionList);
                        FrameworkElementFactory factory = new FrameworkElementFactory(overlayControlView.GetType());
                        var dataTemplate = new DataTemplate(typeof(DependencyObject));
                        dataTemplate.VisualTree = factory;
                        dataGridTemplateColumn.CellTemplate = dataTemplate;
                        dataGrid.Columns.Add(dataGridTemplateColumn);

问题是在将用户控件添加到网格后,它总是调用无参数构造函数,并且用户控件内的值变为空。当我以编程方式添加用户控件时,它首先调用参数构造函数,然后它会自动调用无参数构造函数。

如何解决这个问题!

标签: wpfdata-bindingdatagrid

解决方案


推荐阅读