我想使用后端C#而不是XAML将2-3个按钮添加到datagrid的最后一列中的行。我设法在单元格中添加了一个按钮,但是我无法再添加了。
我尝试创建一个新的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);
答案 0 :(得分:1)
无论您是通过编程方式还是在XAML中创建,DataTemplate
只能具有单个根元素,因此对于{{1},应将VisualTree
属性设置为FrameworkElementFactory
},然后使用Panel
方法将按钮工厂添加到面板工厂,例如:
AppendChild
答案 1 :(得分:0)
所以,我在iPad上,所以我无法提供太多细节。首先,我要说这是一种非常困难的方法,我建议其他任何方法。但是,如果绝对必须完全动态地生成网格,则需要将按钮放在容器中。例如,垂直堆叠面板。然后,您可以根据需要添加任意数量的按钮。祝你好运!