向WPF Datagrid添加多个按钮

时间:2019-07-04 19:41:57

标签: c# wpf datagrid

我想使用后端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);

2 个答案:

答案 0 :(得分:1)

无论您是通过编程方式还是在XAML中创建,DataTemplate只能具有单个根元素,因此对于{{1},应将VisualTree属性设置为FrameworkElementFactory },然后使用Panel方法将按钮工厂添加到面板工厂,例如:

AppendChild

答案 1 :(得分:0)

所以,我在iPad上,所以我无法提供太多细节。首先,我要说这是一种非常困难的方法,我建议其他任何方法。但是,如果绝对必须完全动态地生成网格,则需要将按钮放在容器中。例如,垂直堆叠面板。然后,您可以根据需要添加任意数量的按钮。祝你好运!