我试图优化XAML代码,以便为XAML中的所有绑定提供准确的绑定模式,但无法找到合适的绑定模式,根据我的意见,我认为绑定模式应该是“OneWayToSource”,建议使用合适的绑定模式。
<RadButton x:Name="btnClose" Command="{Binding CloseCommand, Mode=?}"/>
gwo2fgha1#
假设CloseCommand属性值是静态的,在ViewModel的构造函数中设置之后,Mode=OneTime将稍微更有效,因为绑定将不包括对未来更新的任何检查。然而,正如其他人所指出的,为每个绑定指定一个模式的要求是非常容易的。在DependencyProperty定义中指定的默认绑定模式应该覆盖99%的情况。
6ljaweal2#
如果您的命令从未更改,则正确的模式是Mode=OneTime。您不会注意到几个按钮的性能提高,但当绑定在大列表的元素上时,应用适当的模式总是一个好主意。使用OneTime,WPF不需要在源和/或目标发生更改时监视绑定。有一个很好的描述各种模式here。
Mode=OneTime
OneTime
jrcvhitl3#
在视图模型中,
public DelegateCommand CloseCommand { get; }
在构造函数中
CloseCommand = new DelegateCommand(closeCommand);
然后添加函数
private void closeCommand() { //Do Something }
3条答案
按热度按时间gwo2fgha1#
假设CloseCommand属性值是静态的,在ViewModel的构造函数中设置之后,Mode=OneTime将稍微更有效,因为绑定将不包括对未来更新的任何检查。
然而,正如其他人所指出的,为每个绑定指定一个模式的要求是非常容易的。在DependencyProperty定义中指定的默认绑定模式应该覆盖99%的情况。
6ljaweal2#
如果您的命令从未更改,则正确的模式是
Mode=OneTime
。您不会注意到几个按钮的性能提高,但当绑定在大列表的元素上时,应用适当的模式总是一个好主意。使用OneTime
,WPF不需要在源和/或目标发生更改时监视绑定。有一个很好的描述各种模式here。
jrcvhitl3#
在视图模型中,
在构造函数中
然后添加函数