小编Nei*_*eil的帖子

覆盖 DataGridTextColumn

我试图提供一个 DataGrid 列,它的行为类似于 DataGridTextColumn,但在编辑模式下有一个附加按钮。我查看了 DataGridTemplateColumn,但将 DataGridTextColumn 子类化似乎更容易,如下所示

问题是 textBox 在添加到网格时失去了它的绑定。也就是说,对其 Text 属性的更改不会反映在非编辑 TextBlock 或底层视图模式中

关于为什么会这样以及我如何解决它的任何想法?

public class DataGridFileColumn : DataGridTextColumn
{
    protected override FrameworkElement GenerateEditingElement(DataGridCell cell, object dataItem)
    {
        TextBox textBox = (TextBox)base.GenerateEditingElement(cell, dataItem);

        Button button = new Button { Content = "..." };
        Grid.SetColumn(button, 1);

        return new Grid
        {
            ColumnDefinitions = {
                new ColumnDefinition(),
                new ColumnDefinition { Width = GridLength.Auto },
            },
            Children = {
                textBox,
                button,
            },
        };
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在使用 .NET 3.5 和 WPF 工具包

data-binding wpf datagrid wpftoolkit

5
推荐指数
1
解决办法
1715
查看次数

标签 统计

data-binding ×1

datagrid ×1

wpf ×1

wpftoolkit ×1