WPF:直接绑定到控件

问题描述:

我需要将UserControl的属性直接绑定到另一个控件,而不是该控件上的任何特定属性。达到此目的的最佳方式是什么?我试过Binding属性的各种组合无济于事。WPF:直接绑定到控件

对于某些情况下,UserControl具有Next属性,该属性指定导航层次结构中的下一个控件;它与TabIndex类似,但对于上下文敏感的导航。

<c:MyControl x:Name="First" Next="{Binding ???}" /> 
<c:MyControl x:Name="Second" /> 

从阅读的文档,我认为我应该已经能够做到:{Binding Source=Second, BindsDirectlyToSource=True},但没有奏效。

+0

绑定到父项,使用'Path = Second'如何? – 2009-11-07 11:27:37

ElementName属性是你的friend

+0

我曾尝试'ElementName'没有任何成功,但经过一些进一步的调查后,它结束了它工作正常,但我怎么调试它是错误的。我的重写事件被称为“Second”,但没有意识到,所以'Next'总是空。一旦我意识到这一点,并得到了与“First”相关的事件,该物业已经成立。 – 2009-11-07 12:18:08

+0

不错,简洁。 – 2009-11-07 20:54:20

ArildF的回答{绑定的ElementName =二}是最好直接回答你的问题,但你有没有考虑过使用WPF的内置导航功能?

<c:MyControl x:Name="First" KeyboardNavigation.TabIndex="1" /> 
<c:MyControl x:Name="Second" KeyboardNavigation.TabIndex="2" /> 

还检查了:

  • KeyboardNavigationMode枚举

  • KeyboardNavigation.DirectionalNavigation/TabNavigation/ControlNavigation

  • KeyboardNavigation.IsTabStop

  • 我们荷兰国际集团<电网>代替< DockPanel中>,以保持控制在自然秩序

这可能是你想要的功能已经被WPF覆盖。

+0

谢谢你的建议雷,当然对于这个例子来说,使用你所说的会更好;然而,我的例子是设计过于简单化。 – 2009-11-08 11:24:14