首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WPF Datagrid - RowDetails绑定到可选属性?

WPF Datagrid - RowDetails绑定到可选属性?
EN

Stack Overflow用户
提问于 2013-03-13 05:49:43
回答 1查看 453关注 0票数 1

我正在尝试设计一个WPF Datagrid,其中RowDetails (文本块)将绑定到网格的ItemSource元素的Details string属性。

代码语言:javascript
复制
   <DataGrid.RowDetailsTemplate>
            <DataTemplate>
                <TextBlock Text="{Binding Details}" .....
            </DataTemplate>
        </DataGrid.RowDetailsTemplate>

诀窍是,绑定的集合中的元素可能没有Details属性,在这种情况下,RowDetails应该为空。有没有办法让WPF绑定到一个可能在运行时甚至不存在的属性,而不抛出异常?(需要明确的是,绑定的集合中的项要么都有Details属性,要么都没有。我不是在谈论包含多个对象类型的集合。)

我想一个答案是强制这个网格的用户提供总是有Details属性的对象(IDetails接口或其他),但我认为不需要这样做会很好-我希望网格在它可以显示的对象上非常灵活。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-15 02:18:34

在环顾四周之后,我发现了PriorityBindings,它可以完成这项工作。在这里,我绑定到RowDetailsTemplate中的TextBlock,如果未找到绑定的属性,则将falback值设置为空字符串:

代码语言:javascript
复制
<TextBlock.Text>
    <PriorityBinding FallbackValue="">
           <Binding Path="Details" IsAsync="True"/>
    </PriorityBinding>
</TextBlock.Text>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15372883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档