为XAML绑定的FallbackValue使用复杂类型

3

我在寻找一种将UI元素绑定到复杂类型并将另一个复杂类型作为的方法。不幸的是,我在这个话题上没有找到任何有用的信息。当我将FallBackValue设置为属性或类型名称时,它总是显示为字符串:

<ContentControl Content="{Binding MyPathSelector, FallbackValue=model:PathSelector}"/>

在这种情况下,字符串

model:PathSelector

将会被显示。

2个回答

4

如果您想避免标签语法,或者在多个绑定中使用相同的回退对象,可以使用资源:

<Window.Resources>
    <model:PathSelector x:Key="FallbackPathSelector" />
</Window.Resources>
...

<ContentControl Content="{Binding MyPathSelector,
                          FallbackValue={StaticResource FallbackPathSelector}}"/>

这个解决方案比我的好多了。谢谢! - Romano Zumbé
一般来说并不更好。如果您需要为每个绑定使用不同的备选对象,则标记语法更简单。 - Clemens
没错。但在我的情况下,我只需要用于UI渲染。使用您的解决方案,我可以节省很多样板代码,因为有很多这些控件。 - Romano Zumbé

1

我不得不使用标签语法而不是属性语法来添加绑定,这样我就可以引用复杂的带。

<ContentControl>
     <ContentControl.Content>
           <Binding Path="MyPathSelector">
               <Binding.FallbackValue>
                    <model:PathSelector />
               </Binding.FallbackValue>
           </Binding>
      </ContentControl.Content>
</ContentControl>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接