为了账号安全,请及时绑定邮箱和手机立即绑定

在动态生成的 DataGrid 中添加操作列

在动态生成的 DataGrid 中添加操作列

C#
慕尼黑的夜晚无繁华 2021-12-25 16:37:44
我正在使用以下代码动态生成 DataGrid 控件://c# codeDataGrid dg = new DataGrid();dg.HorizontalAlignment = HorizontalAlignment.Center;dg.VerticalAlignment = VerticalAlignment.Top;dg.AutoGenerateColumns = true;getData gd = new getData();UserData[] userData = gd.getUserRecord();dg.ItemsSource = userData;panel1.Children.Add(dg);//XAML code<StackPanel Name="panel1"  ScrollViewer.VerticalScrollBarVisibility="Visible" Margin="18.971,24,24,0" Grid.Column="1">现在,我想向这个数据网格添加一个名为“Action”的附加列,并且在每一行上,它应该有一个删除和编辑按钮。我在互联网上进行了搜索,但只得到了仅动态生成操作列的结果,而我需要所有控件来动态生成。PS:UserData是我的自定义 getter/setter 类,并且getData有从数据库中获取数据的方法。
查看完整描述

1 回答

?
慕森卡

TA贡献1806条经验 获得超8个赞

您可以创建DataGridTemplateColumn一个CellTemplate:


DataGrid dg = new DataGrid();

dg.HorizontalAlignment = HorizontalAlignment.Center;

dg.VerticalAlignment = VerticalAlignment.Top;

dg.AutoGenerateColumns = true;

getData gd = new getData();

UserData[] userData = gd.getUserRecord();

dg.ItemsSource = userData;


FrameworkElementFactory sp = new FrameworkElementFactory(typeof(StackPanel));

sp.SetValue(StackPanel.OrientationProperty, Orientation.Horizontal);

FrameworkElementFactory delete = new FrameworkElementFactory(typeof(Button));

delete.AddHandler(Button.ClickEvent, new RoutedEventHandler((s, e) => { MessageBox.Show("deleted click!"); }));

delete.SetValue(ContentControl.ContentProperty, "Delete");

FrameworkElementFactory edit = new FrameworkElementFactory(typeof(System.Windows.Controls.Button));

edit.AddHandler(Button.ClickEvent, new RoutedEventHandler((s, e) => { MessageBox.Show("edited click!"); }));

edit.SetValue(ContentControl.ContentProperty, "Edit");

edit.SetValue(FrameworkElement.MarginProperty, new Thickness(5, 0, 0, 0));

sp.AppendChild(delete);

sp.AppendChild(edit);


DataGridTemplateColumn dataGridTemplateColumn = new DataGridTemplateColumn()

{

    Header = "new...",

    CellTemplate = new DataTemplate { VisualTree = sp }

};


dg.Columns.Add(dataGridTemplateColumn);


查看完整回答
反对 回复 2021-12-25
  • 1 回答
  • 0 关注
  • 326 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信