将自定义用户控件内的控件绑定到外部控件



我写了一个简单的Window,其中包含一个名为A的自定义UserControl和两个名为B1,B2的RadioButton。自定义UserControl A 包含一个名为 C 的InkCanvas和一些其他控件。现在我想将InkCanvas.EditingMode属性MultiBinding为两个RadioButton的状态,说当两个按钮都选中时,InkCanvas.EditingMode设置为 InkCanvasEditingMode.Ink ,否则InkCanvasEditingMode.None

我知道,在正常情况下,以下代码可以使其工作:

<InkCanvas.EditingMode>
     <MultiBinding Converter="{StaticResource editmodeconv}">
           <Binding ElementName="B1" Path="IsChecked" Mode="TwoWay"/>
            <Binding ElementName="B2" Path="IsChecked" Mode="TwoWay"/>
      </MultiBinding>
</InkCanvas.EditingMode>

但是,由于自定义UserControl A 包含InkCanvas C,因此不再公开两个按钮 B1 和 B2。那么,如何实现呢?

如果可能的话,你可以尝试将单选按钮发送到UserControls构造函数。这样,您将拥有对按钮的引用,因此可以检查它是这个还是那个:)

或者,与 wpf 产品/服务一样,可以查找父层次结构并找到包含按钮的控件。 不确定在这种情况下您要执行的最后一个选项。我自己对 wpf :)

还很陌生

我通常使用第一个解决方案,但我敢打赌,如果您等待,有人会像您尝试过一样提出一些数据绑定:)

编辑:

找到了这篇文章。他们给你一些很好的例子,说明在你的案例中你可以做什么。http://social.msdn.microsoft.com/Forums/vstudio/en-US/ef295bd0-dafc-47ab-9453-25ad2a4dde30/binding-usercontrol-elements-properties?forum=wpf

那是

因为你不应该这样做。控件的全部意义在于封装某种数据的表示形式。

不要尝试进入控件的内部,而是将控件包装的 DATA 公开为控件上的依赖项属性。这样,控件就可以自由地将数据显示为单选按钮或完全不同的内容,并且应用的其余部分将继续工作。

相关内容

  • 没有找到相关文章

最新更新