gpt4 book ai didi

wpf - 覆盖 DataGridTextColumn

转载 作者:行者123 更新时间:2023-12-05 00:16:15 28 4
gpt4 key购买 nike

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

问题是文本框在添加到网格时会丢失其绑定(bind)。也就是说,对其 Text 属性的更改不会反射(reflect)在非编辑 TextBlock 或基础 View 模式中

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

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,
},
};
}
}

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

最佳答案

事实证明,您还需要覆盖 PrepareCellForEdit、CommitCellEdit 和 CancelCellEdit

基类假定(并非不合理)传入的 FrameworkElement 将是一个 TextBox

关于wpf - 覆盖 DataGridTextColumn,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7243235/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com