C# 网格控制WPF的动态列

C# 网格控制WPF的动态列,c#,wpf,mvvm,C#,Wpf,Mvvm,我在wpf视图中有一个网格控件,我从一个文件中读取更多字段,我想在视图模型中为这些字段生成列(我使用MVVM)。我有一个类似这样的函数: GridColumn column; try { column = new GridColumn { Name = fieldName, Header = headerN

我在wpf视图中有一个网格控件,我从一个文件中读取更多字段,我想在视图模型中为这些字段生成列(我使用MVVM)。我有一个类似这样的函数:

GridColumn column;
            try
            {
                column = new GridColumn
                {
                    Name = fieldName,
                    Header = headerName,
                    AllowSorting = DefaultBoolean.True,
                    FieldName = fieldName,
                    ReadOnly = isReadOnly,
                    AllowEditing = isReadOnly ? DefaultBoolean.False : DefaultBoolean.True,
                    AllowMoving = DefaultBoolean.True,
                    AllowResizing = DefaultBoolean.True,
                    Width = width,
                    EditSettings = new TextEditSettings { HorizontalContentAlignment = EditSettingsHorizontalAlignment.Center },
                    AllowDrop = true,
                    CellStyle = isDiffColumn ? GetDiffColumnStyle(fieldName) : null
                };
            }
但现在我想在我的网格中添加3个新列,其中包含按钮或图像。所以我想我需要设置单元格模板


如何执行此操作?

如果要使用
按钮或
图像添加
,则需要定义
DataGridTemplateColumn

例如:

var templateColumn = new DataGridTemplateColumn();
var template = new DataTemplate();
var button = new Button();
template.VisualTree = button; 
templateColumn.CellTemplate = template;

在视图模型中创建网格列?不是mvvm。