为绑定到基础数据

时间:2016-03-31 14:12:18

标签: wpf xaml data-binding datagrid

我们假设我有一列WPF DataGrid

<DataGridCheckBoxColumn Binding="{Binding myProperty}" Header="My Property" >
    <DataGridCheckBoxColumn.CellStyle>
        <Style TargetType="DataGridCell">
            <Style.Triggers>
                <DataTrigger Binding="{Binding myProperty}" Value="1">
                    <Setter Property="Background" Value="Red" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </DataGridCheckBoxColumn.CellStyle>                   
</DataGridCheckBoxColumn>

这可以按照您的预期运行:如果基础值为Red

,则会生成单元格背景颜色1

为了避免为所有列编写所有这些(我有几个),我想将样式作为资源,因此可以重复使用,如下所示:

<Window.Resources>
    <Style TargetType="DataGridCell" x:Key="styleCheckboxRed">
                <Style.Triggers>
                    <DataTrigger Binding="?????" Value="1">
                        <Setter Property="Background" Value="Red" />
                    </DataTrigger>
                </Style.Triggers>
            </Style>
</Window.Resources>

<!-- other stuff... -->

<DataGridCheckBoxColumn Binding="{Binding myProperty}" Header="My Property" CellStyle="{StaticResource styleCheckboxRed}" />

但正如您所看到的,我不知道如何在DataTrigger上设置绑定以使其适用于任何通用列...我可以以某种方式引用Column自己的绑定吗?我使用RelativeSource进行了各种尝试,但我不知道正确的方法(如果确实有一个)。有什么想法吗?

0 个答案:

没有答案