【发布时间】:2012-04-13 23:55:30
【问题描述】:
我有一个用例,我想从另一个元素获取对 Xaml 中一个元素的引用。
例如,考虑这个简单的案例。我有一个名为 A 的 UserControl 和一个名为 B 的 UserControl, 并且不知何故我想注册一个附加属性,B可以在其中获得对A的引用。
例如
<MyCustomControl Name="A"/>
<MyCustomControl Name="B"
AttachedPropClass.TheOtherControl="{Binding ElementName=A}"/>
所以我希望 B.TheOtherControl 等于 A。这在 Xaml 中可能吗?请注意,我不是绑定到 A 的属性,而是我想要整个元素。
任何使用 DependencyProperties、AttachedProperties 或 Behaviors 的解决方案都可以让我在 Xaml 中做到这一点。
编辑:我正在尝试在 WPF 和 Silverlight4 中执行此操作。我已经尝试了上述方法,但它不起作用,附加属性上的属性更改回调永远不会被击中。
【问题讨论】:
-
嗯,你试过了吗?你写的代码看起来不错……
-
是的,我应该说,我已经尝试过了,但它不起作用。我还在 MyCustomControl 上尝试了 DependencyProperty,并通过 ElementName 将 B.TheOther 绑定到 A。都没有奏效。我在依赖属性上有一个 PropertyChanged 回调,它永远不会被击中。所以,至少我没有做一些愚蠢的事情,上面的语法是正确的吗?也许还有其他问题。
-
试过
BindsDirectlyToSource? -
你能在这里复制你的附加属性吗??
-
谢谢@ExitMusic - 从来不知道那个属性。那么在这种情况下会有什么例子呢?请记住,如果有帮助,我可以将 TheOtherControl 实现为 MyCustomControl 上的 DependencyProperty 而不是 Attached Prop。
标签: wpf silverlight xaml binding