簡體   English   中英

如何公開XAML屬性?

[英]How to expose xaml properties?

我創建了一個ComboBox子類並添加了我的功能。

現在,我想公開TextBox的外部屬性,例如:

<a:MyComboBox SpellCheck.IsEnabled="True" TextBox.SelectedText="{Binding X}" />

這可能嗎,我可能沒有選擇錯誤的特定屬性,但我想您理解我的意思。

這可能嗎?
我必須單獨創建所有屬性嗎?

在XAML中這是不可能的。 XAML不允許您使用所描述的屬性路徑語法來處理單個成員的子屬性。 (類似的東西可能某些遺傳特性,如背景和字體大小,但使用的繼承機制-影響所有包含的控件-而非解決具體的子元素,並不會為TextBox.SelectedText工作反正。 )

因此,是的,您將需要在MyComboBox類上聲明自定義屬性,以顯示需要從MyComboBox外部訪問的TextBox的功能。 從好的方面來說,這是封裝的良好紀律:請記住,將來的開發人員可能會將自定義模板應用於不包含TextBox的MyComboBox(或者該成員未命名為TextBox,或者該名為TextBox的成員實際上是一個RichTextEditor而不是普通的TextBox ...)。 顯式屬性可確保MyComboBox清楚定義此類模板需要遵循的行為和狀態,並讓模板決定如何實現該行為和狀態,而不是始終受限於模板的作者以公開TextBox。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM