2014-04-15 30 views
0

如果我編寫自定義WPF控件,我應該確保在XAML中設置屬性的順序不會影響控件的行爲。例如:WPF - 應該自定義控件屬性順序嗎?

<MyControl Prop1="Value" Prop2="Value" Prop3="Value" /> 

如果上面的XAML來代替書面

<MyControl Prop3="Value" Prop2="Value" Prop1="Value" /> 

如果用戶希望控制的狀態,在這兩種情況下一樣的嗎? 或者可以,我需要訂單嗎?

回答

2

你不應該強制開發者遵循這樣的屬性順序。您不能要求開發人員記住寫入屬性的正確順序。

我,例如,使用自動訂購的屬性的插件。

+0

你使用的是什麼plagin? –

+0

我用ReSharper的插件'的XAML Attritbute訂購Plugin.' –

1

順序無關緊要。在任何UI事件發生之前,該對象的屬性都會創建爲&。實際上,XML規範說屬性順序沒有定義&沒有什麼區別。

+0

的問題是,是否其確定編寫自定義的控制,其中,爲了不* *事 –

+0

你不能做到這一點,可以嗎?你怎麼能讓XAML解析器做到這一點? –

+0

你能告訴我規範說明屬性順序沒有被定義並且沒有區別嗎? 「訂單無關緊要」和「確保訂單不會影響控件行爲」有所不同。「 – declouet

0

對於標準的XAML屬性,順序可以是任意的。但是,如果您創建了自己的UserControl,那麼如果PropertyMetadata中的屬性邏輯依賴於某些參數屬性,則順序可能很重要。

我想,好的做法是不以某種順序指定參數創建一個控制,因爲它很難記住屬性的所有訂單,因此不便於終端用戶。

對於依賴性屬性,如果用戶未指定此值,則使用默認值。應設計控制,以便根本不能指定某些值或不按正確順序指定。