在 MVVM 中处理点击事件的最佳方法是什么?有没有最好的方法?
我找到了两个解决方案:
使用中继命令:
RelayCommand buttonAddCategory_Click;
public ICommand ButtonAddCategory_Click
{
get
{
return buttonAddCategory_Click ?? (buttonAddCategory_Click = new RelayCommand(param => this.AddCategory(),
param => true));
}
}
亲:?;对比:如果我要更改诸如焦点之类的 ui 元素,则需要解决事件
附带行为:
public static bool GetIsResetMouseLeftButtonDown(TreeView treeView)
{
return (bool)treeView.GetValue(IsResetMouseLeftButtonDownProperty);
}
public static void SetIsResetMouseLeftButtonDown(TreeView treeViewItem, bool value)
{
treeViewItem.SetValue(IsResetMouseLeftButtonDownProperty, value);
}
public static readonly DependencyProperty IsResetMouseLeftButtonDownProperty =
DependencyProperty.RegisterAttached("PreviewMouseLeftButtonDown", typeof(bool), typeof(TreeViewBehavior),
new UIPropertyMetadata(false, OnIsMouseLeftButtonDownChanged));
亲:你有 RoutedEventArgs 用于 ui 上的更改;对比:访问其他控件?
现在我使用这两种解决方案。按钮中的 RellayCommand(带有用于 ui 更新的事件)和树视图的附加行为,以在用户单击时取消选择树视图项。