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

ux6nzvsh  于 2022-12-07  发布在  其他
关注(0)|答案(3)|浏览(110)

我试图优化XAML代码,以便为XAML中的所有绑定提供准确的绑定模式,但无法找到合适的绑定模式,根据我的意见,我认为绑定模式应该是“OneWayToSource”,建议使用合适的绑定模式。

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

gwo2fgha1#

假设CloseCommand属性值是静态的,在ViewModel的构造函数中设置之后,Mode=OneTime将稍微更有效,因为绑定将不包括对未来更新的任何检查。
然而,正如其他人所指出的,为每个绑定指定一个模式的要求是非常容易的。在DependencyProperty定义中指定的默认绑定模式应该覆盖99%的情况。

6ljaweal

6ljaweal2#

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

jrcvhitl

jrcvhitl3#

在视图模型中,

public DelegateCommand CloseCommand { get; }

在构造函数中

CloseCommand = new DelegateCommand(closeCommand);

然后添加函数

private void closeCommand()
{
    //Do Something
}

相关问题