Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
绑定覆盖DataGrid上的WPF样式触发器_Wpf_.net 4.0_Wpfdatagrid_Wpf Style - Fatal编程技术网

绑定覆盖DataGrid上的WPF样式触发器

绑定覆盖DataGrid上的WPF样式触发器,wpf,.net-4.0,wpfdatagrid,wpf-style,Wpf,.net 4.0,Wpfdatagrid,Wpf Style,我找到了一种在wpf datagrid中使用:,将布尔值转换为yes/no而不是True/False的方法,但是一旦这样做,此列就不可排序。我的代码如下: <DataGridTextColumn Header=" Consolidated Company " IsReadOnly="True" MinWidth="100"> <DataGridTextColumn.ElementStyle> <Style TargetType="{x:Typ

我找到了一种在wpf datagrid中使用:,将布尔值转换为yes/no而不是True/False的方法,但是一旦这样做,此列就不可排序。我的代码如下:

<DataGridTextColumn Header=" Consolidated Company " IsReadOnly="True" MinWidth="100">
    <DataGridTextColumn.ElementStyle>
        <Style TargetType="{x:Type TextBlock}">
            <Setter Property="HorizontalAlignment" Value="Left" />
            <Setter Property="Margin" Value="5,0,5,0" />
            <Style.Triggers>
                <DataTrigger Binding="{Binding lRollupCompany}" Value="True">
                    <Setter Property="Text" Value="Yes" />
                </DataTrigger>
                <DataTrigger Binding="{Binding lRollupCompany}" Value="False">
                    <Setter Property="Text" Value="No" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </DataGridTextColumn.ElementStyle>
</DataGridTextColumn>

尝试重新进行排序只会使列恢复为显示True/False

        <DataGridTextColumn Header=" Consolidated Company " Binding="{Binding lRollupCompany}" IsReadOnly="True" MinWidth="100">
            <DataGridTextColumn.ElementStyle>
                <Style TargetType="{x:Type TextBlock}">
                    <Setter Property="HorizontalAlignment" Value="Left" />
                    <Setter Property="Margin" Value="5,0,5,0" />
                    <Style.Triggers>
                        <DataTrigger Binding="{Binding lRollupCompany}" Value="True">
                            <Setter Property="Text" Value="Yes" />
                        </DataTrigger>
                        <DataTrigger Binding="{Binding lRollupCompany}" Value="False">
                            <Setter Property="Text" Value="No" />
                        </DataTrigger>
                    </Style.Triggers>
                </Style>
            </DataGridTextColumn.ElementStyle>
        </DataGridTextColumn>


是否有一种不涉及转换器的解决方案?

如果您想更改给定的
数据网格
列的排序,您可以使用

获取或设置一个属性名或以句点分隔的属性名层次结构,该属性名指示要排序的成员

因此,在您的XAML中,您可以

<DataGridTextColumn  ... SortMemberPath="lRollupCompany"/>


使用
DataGridTemplateColumn
@Jon,您是否尝试设置
?@dkozl-Ugh,谢谢。发布一个答案,我会投你一票。这就解决了这个问题(我想这只是对WPF控件的一个极大的不熟悉)。