【问题标题】:dynamic columns for grid control WPF用于网格控制 WPF 的动态列
【发布时间】:2015-06-15 14:15:23
【问题描述】:

我在 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 个带有按钮或图像的新列。所以我想我需要设置单元格模板。

我该怎么做?

【问题讨论】:

  • 在您的视图模型中创建 GridColumns?不是 mvvm。

标签: c# wpf mvvm


【解决方案1】:

如果您想添加带有ButtonImageColumn,则需要定义DataGridTemplateColumn

例如:

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

【讨论】:

    猜你喜欢
    • 2013-10-25
    • 2011-07-06
    • 1970-01-01
    • 1970-01-01
    • 2012-09-07
    • 1970-01-01
    • 1970-01-01
    • 2015-03-24
    • 2015-02-01
    相关资源
    最近更新 更多