我已经创建了用户控件,并使用了后面的代码将其添加到数据网格中。对于用户控制,我创建了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);
问题是在将用户控件添加到grid后,其始终调用的参数少了构造函数,并且用户控件内的值变为空。当我以编程方式添加用户控件时,它首先调用参数构造函数,然后自动调用较少参数的构造函数。
如何解决此问题!