当使用的乔史密斯 RelayCommand, ,大多数的例子我已经看到了使用延迟的初始化,例如:

public class ViewModel
{
    private ICommand myCommand;

    public ICommand MyCommand
    {
        get
        {
            if (myCommand == null)
            {
                myCommand = new RelayCommand(p => DoSomething() );
            }

            return myCommand;
        }
    }
    // ... stuff ...

}

而不是创造RelayCommand在构造,像这样:

public class ViewModel
{
    public ViewModel()
    {
            MyCommand = new RelayCommand(p => DoSomething());
    }

    public ICommand MyCommand
    {
        get;
        private set;

    }

    // ... stuff ...
}

有什么好处的使用延迟的初始化在这里?它必须呼吁得到财产时,设立结合,所以我不能看出一个理由使用这种方法在设置事在构造。

我失去了一些东西在这里?

有帮助吗?

解决方案

实际上,WPF。将获得继命令只是一旦每结合,所以你真的不需要储存一背领域有:

public ICommand MyCommand
{
    get
    {
        return new RelayCommand(p => DoSomething());
    }
}

因此,虽然没什么问题与创建它。构造函数为你的建议,有非常少的原因。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top