我们应该为命令绑定指定什么绑定模式以进行优化



我正在尝试优化 XAML 代码,以便为 XAML 中的所有绑定提供准确的绑定模式,但找不到合适的绑定模式,据我说,我认为绑定模式应该是"OneWayToSource",建议正确的绑定模式。

<RadButton x:Name="btnClose" Command="{Binding CloseCommand, Mode=?}"/>

假设 CloseCommand 属性值是静态的,在 ViewModel 的构造函数中设置后,Mode=OneTime 的效率会稍微高一些,因为绑定不会包括对未来更新的任何检查。

然而,正如其他人所指出的,为每个绑定指定一种模式的要求是完全容易的。DependencyProperty 定义中指定的默认绑定模式应涵盖 99% 的情况。

如果您的命令从未更改,则正确的模式是 Mode=OneTime 。您不会注意到几个按钮的性能改进,但是当绑定位于大列表的元素上时,应用适当的模式始终是一个好主意。使用 OneTime,WPF 不需要在源和/或目标发生更改时监视绑定。

这里有对各种模式的良好描述。

在您的视图模型中,

public DelegateCommand CloseCommand { get; }

在构造函数中

CloseCommand = new DelegateCommand(closeCommand);

然后添加函数

private void closeCommand()
{
    //Do Something
}

最新更新