2009-11-08 55 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