按照x:Reference Markup Extension頁面上MSDN,x:Reference
x:Reference和ElementName有什麼區別?
引用在XAML標記別處聲明的實例。該引用引用元素的x:Name。
按照Binding.ElementName Property頁面上MSDN,ElementName
Name屬性或x的值:感興趣的元素的名稱指令。
X:在第一頁上的備註部分
回首參考和WPF
在WPF和2006年XAML,元素引用由框架級功能解決ElementName綁定。對於大多數WPF應用程序和場景,仍應使用ElementName綁定。此一般性指南的例外情況可能包括數據上下文或其他範圍注意事項使數據綁定不切實際以及不涉及標記編譯的情況。
爲了完整起見,這裏是ElementName
頁面上的言論段的一部分:當你要綁定到另一個元素的應用程序中的財產
此屬性很有用。例如,如果要使用Slider控制應用程序中另一個控件的高度,或者要將控件的內容綁定到ListBox控件的SelectedValue屬性。
現在,當我完全知道何時以及如何使用ElementName
財產,我不完全理解和x:Reference
標記擴展之間的區別。任何人都可以請解釋這一點,特別是擴大從x:Reference
備註欄?:
例外情況一般引導的最後一句話可能包括在有數據的上下文或其他作用域的考慮,使數據綁定不切實際的情況下,並且不涉及標記編譯。
所以主要區別在於控件是否是UIElement? – Sheridan
+1。順便說一句,你有這個信息的來源,還是僅僅來自於經驗? 這裏沒有提到的一件事是,孩子不能'x:引用'它的父母(這種關係似乎取決於上下文,而不是在視覺樹上),因爲這會導致循環引用問題。由於其他一些神祕的問題,有時參考文獻也會默默無聞地解決。 – GregRos
該信息的來源是源代碼本身:) –