繁体   English   中英

WPF:对GridViewColumn中的DisplayMemberBinding使用PriorityBinding

[英]WPF: Use PriorityBinding for DisplayMemberBinding in GridViewColumn

我已经在WPF中为GridViewColumn设置了DisplayMemberBinding

<GridViewColumn Header="{x:Static resx:TextResources.ExcutionTimesHeaderErrorType}" DisplayMemberBinding="{Binding Exception, Mode=OneWay, Converter={StaticResource typeConverter}, FallbackValue='---'}"/>

typeConverter模仿Exception.GetType()扩展名,以在Gui中以字符串形式显示异常的类型。 如果没有异常,并且此值为null,我想在此列中输出另一个属性。 现在,我想像DisplayMemberBinding一样使用PriorityBinding ,但是GridViewColumn除了PriorityBinding作为'sub-element'之外都没有做,也没有可能将DisplayMemberBinding属性用作'sub-element'。 有没有办法像这样对GridViewColumn使用PriorityBinding

<GridViewColumn Header="{x:Static resx:TextResources.ExcutionTimesHeaderErrorType}">
    <PriorityBinding>
        <Binding Path="Exception" Mode="OneWay" Converter="{StaticResource typeConverter}" IsAsync="True" />
        <Binding Path="AnotherProperty" IsAsync="True" />
    </PriorityBinding>
</GridViewColumn>

编辑

我将代码更改为以下“ ASh”的建议,但不起作用:

<GridViewColumn Header="{x:Static resx:TextResources.ExcutionTimesHeaderErrorType}">
    <GridViewColumn.DisplayMemberBinding>
        <PriorityBinding  FallbackValue="-*-">
            <Binding Path="Exception" Converter="{StaticResource typeConverter}" Mode="OneWay" IsAsync="True"/>
            <Binding Path="Comment" FallbackValue="---"/>
        </PriorityBinding>
    </GridViewColumn.DisplayMemberBinding>
</GridViewColumn>

如果Exception属性为null,则显示值为空。 我检查了是否设置了第二个绑定属性“ comment”。

这两个绑定正常工作:

<GridViewColumn Header="{x:Static resx:TextResources.ExcutionTimesHeaderComment}" DisplayMemberBinding="{Binding Comment, FallbackValue='---'}"/>

<GridViewColumn Header="test2" DisplayMemberBinding="{Binding Exception, Mode=OneWay, Converter={StaticResource typeConverter}, FallbackValue='---'}"/>

您缺少<GridViewColumn.DisplayMemberBinding>标记:

<GridViewColumn>
    <GridViewColumn.DisplayMemberBinding>
        <PriorityBinding>
           <Binding Path="Exception" Mode="OneWay" Converter="{StaticResource typeConverter}" IsAsync="True" />
           <Binding Path="AnotherProperty" IsAsync="True" />
        </PriorityBinding>
    </GridViewColumn.DisplayMemberBinding>
</GridViewColumn>

GridViewColumn标有ContentProperty属性,内容属性为Header: [ContentProperty("Header")] 因此, <GridViewColumn>标记的内部内容没有GridViewColumn. 前缀应分配给Header属性

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM