我想添加2-3个按钮到我的datagrid的最后一列的行使用后端C#而不是XAML。我设法添加一个按钮到单元格,但我有麻烦添加超过了。
我尝试过创建一个新的FrameworkElementFactory并将其添加到列中,但它只是替换了上一个按钮,而不是添加按钮。
DataGridTemplateColumn buttonColumn = new DataGridTemplateColumn();
buttonColumn.Header = "Actions";
buttonColumn.Width = 209;
DataTemplate buttonTemplate = new DataTemplate();
FrameworkElementFactory buttonFactory = new FrameworkElementFactory(typeof(Button));
buttonTemplate.VisualTree = buttonFactory;
buttonFactory.AddHandler(ButtonBase.ClickEvent, new RoutedEventHandler(Activate));
buttonFactory.SetValue(ContentProperty, "A");
buttonColumn.CellTemplate = buttonTemplate;
dGrid_SavedData.Columns.Add(buttonColumn);
3条答案
按热度按时间qyzbxkaa1#
无论是以编程方式还是在XAML中创建,
DataTemplate
都只能有一个根元素,因此对于Panel
,应将VisualTree
属性设置为FrameworkElementFactory
,并使用AppendChild
方法将按钮工厂添加到面板工厂,例如:sigwle7e2#
我用的是iPad,所以我不能给予太多细节。首先,我想说这是一个非常困难的方法,我推荐其他任何方法。但如果你必须完全动态地生成网格,你需要把按钮放在一个容器中。例如,一个垂直堆叠面板。然后你可以添加任意多的按钮。祝你好运!
iqxoj9l93#
这是代码段