WPF绑定FallbackValue设置为绑定

Hax*_*lit 36 data-binding wpf fallback

有没有办法让另一个绑定作为后备值?

我正在尝试做这样的事情:

<Label Content="{Binding SelectedItem.Name, ElementName=groupTreeView,
                         FallbackValue={Binding RootGroup.Name}}" />
Run Code Online (Sandbox Code Playgroud)

如果有人有另一种技巧可以实现这一目标,那就太棒了.

kiw*_*pom 72

您正在寻找的是名为PriorityBinding的东西(列表中的#6 )

(来自文章)

PriorityBinding的要点是按照最令人满意的顺序命名多个数据绑定.这样,如果第一个绑定失败,则为空和/或默认,另一个绑定可以取代它.

例如

<TextBox>
    <TextBox.Text>
        <PriorityBinding>
            <Binding Path="LastNameNonExistant" IsAsync="True" />
            <Binding Path="FirstName" IsAsync="True" />
        </PriorityBinding>
    </TextBox.Text>
</TextBox>
Run Code Online (Sandbox Code Playgroud)

  • 问题是PriorityBinding将空字符串视为成功绑定 (26认同)
  • 来自[MSDN](https://msdn.microsoft.com/en-us/library/system.windows.data.prioritybinding%28v=vs.110%29.aspx):`不考虑值DependencyProperty.UnsetValue一个成功的返回值. - 所以只需在绑定上使用一个转换器,如果你的值为null,则返回该属性.@Shimmy (4认同)