您何时使用方法行为以及何时EventToCommand
?我认为,如果要做的工作非常具体,最好使用EventToCommand
并在ViewModel中实现工作。当作业可以重复使用时,最好将功能实现为行为。
更新:
例如,函数DoPreviewKeyDown
:
private void DoPreviewKeyDown(KeyEventArgs e)
{
var view = (TableView)e.Source;
if (e.Key == Key.Tab)
{
if (ReferenceEquals(view.Grid.CurrentColumn, view.VisibleColumns[view.VisibleColumns.Count - 1]))
{
view.SearchControl.Focus();
e.Handled = true;
}
}
else if (e.Key == Key.Enter)
{
if (OkCommand != null)
OkCommand.Execute(null);
e.Handled = true;
}
else if ((e.Key == Key.F) && (Keyboard.Modifiers == ModifierKeys.Control))
{
view.SearchControl.Focus();
}
}
我在我的ViewModel中做到了这一点。我可以在行为中执行此操作,但此功能对于此grid
非常具体。这就是为什么,我认为在我的ViewModel中这样做更好。
您认为这种方法有效吗?