c# - 设置 WPF DataGridCell ControlTemplate 后无法编辑
问题描述
我正在自定义 WPFDataGridCell
样式,但是一旦我完成了这个双击编辑就不再起作用了。我也尝试手动调用myDataGrid.BeginEdit
,但似乎没有任何反应。这是类似于我所拥有的代码:
<Style x:Key="MyCell" TargetType="{x:Type DataGridCell}" BasedOn="{StaticResource {x:Type DataGridCell}}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Border>
<TextBlock />
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
我认为问题是因为我覆盖了 ControlTemplate,所以不再存在编辑器?如果是这种情况,他们是我可以使用默认编辑器对其进行排序的一种方式吗?
解决方案
我正在使用一个子类
TextBlock
,它为内容字符串中的单个单词设置不同的前景色。如果不更换 ControlTemplate,我无法弄清楚如何做到这一点。
ControlTemplate
您应该创建自定义列类型并覆盖该GenerateElement
方法以返回自定义类型的实例,而不是创建自定义:
public class CustomColumn : DataGridTextColumn
{
protected override FrameworkElement GenerateElement(DataGridCell cell, object dataItem)
{
return new YourCustomTextBlock();
}
}
推荐阅读
- c++ - c++线程'找不到匹配的重载函数'
- android - Android:无法在 OnMapReady 方法中在谷歌地图上添加标记
- html - CSS水平滚动分区
- android - RecyclerView的实现
- python - 数组只列出第一项。(Python)
- html - 使用检查元素禁用全屏弹出链接?
- wordpress - 何使用 GitLab 配置 WordPress
- angular - Angular 9转到不同页面上的锚点
- angular - 在 Angular 应用程序中获取 keyclock 中的用户组信息?
- docker - Authelia(Docker-Compose)找不到/读取现有配置文件(卷)