如何为DataGridCheckBoxColumn创建通用编辑样式
本文关键字:编辑 样式 创建 DataGridCheckBoxColumn | 更新日期: 2023-09-27 18:05:58
我已经为DataGrid创建了以下样式:
<Style x:Key="TextColumnEditStyle" TargetType="TextBox">
<Setter...>
<Setter...>
</Style>
Then on the DataGrid:
<DataGridCheckBoxColumn EditingElementStyle="{StaticResource TextColumnEditStyle}"...>
很好。
是否有一种方法,使上述更通用的风格,目标DataGridCheckBoxColumn,所以我不需要分配每个DataGridCheckBoxColumn的风格?
我尝试了以下方法,但是没有效果:
<Style TargetType="DataGridCheckBoxColumn">
<Setter...>
<Setter...>
</Style>
…然后去掉style赋值:
<DataGridCheckBoxColumn ...>
你可以用这个样式创建一个自定义列,然后你可以添加你自己的自定义列,而不是添加DataGridCheckBoxColumn
,这将有你的样式应用
创建一个新列,比如MyColumn
,这样MyColumn.xaml
看起来像
<DataGridCheckBoxColumn x:Class="TestApp.MyColumn"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:TestApp"
EditingElementStyle="{StaticResource TextColumnEditStyle}"
mc:Ignorable="d"/>
和MyColumn.xaml.cs
看起来像
public partial class MyColumn : DataGridCheckBoxColumn
{
public MyColumn()
{
InitializeComponent();
}
}
然后你使用网格的视图可以这样使用
<Grid>
<DataGrid ItemsSource="{Binding Items}">
<DataGrid.Columns>
<local:MyColumn Binding="{Binding .}"/>
</DataGrid.Columns>
</DataGrid>
</Grid>
你可以在一个资源中创建TextColumnEditStyle
,这个资源将被新的自定义列使用。