【问题标题】:Use a complex type for XAML Binding FallBackValue为 XAML 绑定 FallBackValue 使用复杂类型
【发布时间】:2017-06-29 13:22:59
【问题描述】:

我正在寻找一种将 UI 元素绑定到复杂类型并具有另一个复杂类型 FallBackValue 的方法。不幸的是,我没有找到关于该主题的任何内容。当我将FallBackValue 设置为属性或类型的名称时,它始终显示为string

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

这里是字符串

模型:路径选择器

会显示

【问题讨论】:

    标签: c# wpf xaml data-binding


    【解决方案1】:

    以防万一您想避免标记语法,或对多个绑定使用相同的后备对象,您可以使用资源:

    <Window.Resources>
        <model:PathSelector x:Key="FallbackPathSelector" />
    </Window.Resources>
    ...
    
    <ContentControl Content="{Binding MyPathSelector,
                              FallbackValue={StaticResource FallbackPathSelector}}"/>
    

    【讨论】:

    • 这个解决方案比我的好多了。谢谢!
    • 一般来说不是更好。如果您需要为每个绑定使用不同的后备对象,标记语法会更简单。
    • 确实如此。但就我而言,我只需要它来进行 UI 渲染。使用您的解决方案,我节省了很多样板代码,因为有很多这些控件。
    【解决方案2】:

    我必须在标记语法而不是属性语法中添加绑定,并且在那里我可以引用复杂的磁带:

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

    【讨论】:

      猜你喜欢
      • 2015-07-23
      • 1970-01-01
      • 2010-12-27
      • 1970-01-01
      • 2011-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多