【问题标题】:Usercontrol binding - RelativeSource用户控件绑定-RelativeSource
【发布时间】:2012-07-05 12:39:48
【问题描述】:

在 WPF 4 UserControl 中,我可以在 XAML 中定义子控件的绑定,如下所示...

...
    <ComboBox 
        ItemsSource="{Binding CBItems, 
                      RelativeSource={RelativeSource AncestorType=UserControl}}"
        ...              
    />
...

其中 CBItems 是在 UserControl 后面的代码中定义的属性。

但是这种格式在 Windows 8 Metro 中不可用 - RelativeSource 没有成员 AncestorType。

如何在 Windows 8 中进行这种类型的绑定?

【问题讨论】:

    标签: user-controls windows-8


    【解决方案1】:

    看起来 TemplatedControl 而不是 UserControl 是为 Windows 8 Metro 开发创建可重用复合组件的方法。

    Tim Heuer 的This blog post 有一个详细的示例。

    【讨论】:

      【解决方案2】:

      如果我理解正确,您想将 ComboBox 的 ItemsSource 绑定到同一 UserControl 内的控件的公共属性吗?

      你不能这样做:

      <ComboBox ItemsSource="{Binding CBItems, ElementName=MyControl}"/>
      ...
      <controls:MyUserControl x:name="MyControl" />
      

      【讨论】:

      • 问题是控件的名称在用户控件定义中是未知的。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-11-07
      • 2014-12-01
      • 2011-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-20
      相关资源
      最近更新 更多