2011-03-26 49 views
3

假设我有我想在XAML中引用的课程。什么是更高效的{X:Static Class.Default}或{StaticResource Class}?

public class MyConverter 
{ 
    public static readonly MyConverter Default = new MyConverter(); 
    ... 
}; 

然后在XAML我可以引用它要么

<Label Content="{Binding Text,Converter={x:Static local:MyConverter.Default}"/> 

<local:MyConverter x:Key="MyConverter"/> 
... 
<Label Content="{Binding Text,Converter={StaticResource local:MyConverter}"/> 

哪种方法更有效?

回答

0

我怀疑这里什么会比其他更effecient但这里的关键区别是什么是真正回事:

  1. 在第一种方法你引用类MyConverter
  2. 的静态字段在第二种情况下您正在创建一个实例MyConverter并使用它。

我相信第一个人可能会更快地结合百分比(或者你的意思是说效率高?),但这种差异不会给你带来太多的利润。如果您已经有一个静态字段,我会选择选项#1。还据我记得x:Static仍然不是在Silverlight中可用。

+0

这个问题更多的是理论上的自然,因为有多种方式来剥皮猫。当然,日常表现并不重要,但是我发现x:Static更方便一些,因为你不必声明资源。 – AlexK 2011-03-26 22:03:10

相关问题