2009-11-08 51 views
0

有許多屬性可以通過多種方式提供值。例如:XAML中某些屬性值的嚴格vs方便的語法

  1. Style.TargetType: 「NS:類型名」 與 「{X:類型NS:類型名}」
  2. Button.Command: 「NS:TypeName.StaticPropertyName」 與「{X:靜態納秒:TypeName.StaticPropertyName}「
  3. 您可以將其命名。

問題是:是否有任何缺點,伴隨着方便的語法?

回答

1

我認爲主要的缺點是,您可能有時使用相同的較短的語法屬性不是特定的類型,因此不會發生自動轉換。在意識到這是因爲您的價值被視爲string之前,您可能會摸不清頭腦。換句話說,這些方便的短手的翻譯是上下文的。

這裏是一個非常牽強的例子:

<Button Command="local:Command.ExitCommand" Tag="local:Command.ExitCommand">Exit</Button> 

在這個例子中,Command屬性將正確解析ICommand實例,但Tag屬性將被設置爲文本「地方:Command.ExitCommand」。

+0

因此,無論其需要如何,您都建議編寫'{x:Type ...}','{x:Static}'等等。 枚舉怎麼樣?你建議'可見的'或'{x:Static Visibility.Visible}'? – archimed7592 2009-11-08 14:35:45

+0

我只是建議你意識到這個問題。速記版本的存在是有原因的 - 它沒有它是乏味和冗長的。但只要意識到幕後發生了什麼事情就可以實現。 – 2009-11-08 15:55:03