我为DataGrid DataGridCheckBoxColumn创建了以下样式:
<Style x:Key="TextColumnEditStyle" TargetType="TextBox">
<Setter...>
<Setter...>
</Style>
然后在DataGrid上:
<DataGridCheckBoxColumn EditingElementStyle="{StaticResource TextColumnEditStyle}"...>
很好
有没有一种方法可以使上面的样式更通用,以DataGridCheckBoxColumn为目标,所以我不必将样式分配给每个DataGridCheckBoxColumn?
我尝试了以下操作,但没有效果:
<Style TargetType="DataGridCheckBoxColumn">
<Setter...>
<Setter...>
</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
在将由新的自定义列使用的资源中创建。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句