Wpf 我们应该为优化的命令绑定指定什么绑定模式?

Wpf 我们应该为优化的命令绑定指定什么绑定模式?,wpf,xaml,mvvm,Wpf,Xaml,Mvvm,我正在尝试优化XAML代码,以便为XAML中的所有绑定提供准确的绑定模式,但找不到合适的绑定模式,我认为绑定模式应该是“OneWayToSource”,建议使用合适的绑定模式 <RadButton x:Name="btnClose" Command="{Binding CloseCommand, Mode=?}"/> 在视图模型中 public DelegateCommand CloseCommand { get; } 在构造函数中 CloseCommand = new Del

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

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

在视图模型中

public DelegateCommand CloseCommand { get; }
在构造函数中

CloseCommand = new DelegateCommand(closeCommand);
然后添加函数

private void closeCommand()
{
    //Do Something
}

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


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

完全没有,如果足够,默认单向。仅在必要时通过设置绑定模式来“优化”XAML。@jtudu,
OneWayToSource
将命令从
RadButton
复制到viewmodel。如果您有相反的信息,我建议您与Microsoft联系。只有在默认值不够的情况下,才“过早优化是万恶之源”,因此几乎永远不会。对于大多数属性,默认值涵盖标准用例。例如,文本框的文本属性默认为双向。当然,对于目标对象从未设置过的所有属性,比如按钮的命令属性,都是单向的。在理想的WPF应用程序中,您可能找不到一个显式设置其模式的绑定。因此,要求明确指定WPF应用程序中所有绑定的模式的要求是毫无意义的。我问了什么,您想解释什么?