2009-11-07 69 views
2

我需要將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

回答

12

ElementName屬性是你的friend

+0

我曾嘗試'ElementName'沒有任何成功,但經過一些進一步的調查後,它結束了它工作正常,但我怎麼調試它是錯誤的。我的重寫事件被稱爲「Second」,但沒有意識到,所以'Next'總是空。一旦我意識到這一點,並得到了與「First」相關的事件,該物業已經成立。 – 2009-11-07 12:18:08

+0

不錯,簡潔。 – 2009-11-07 20:54:20

2

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