我有一个UserControl。在我的UserControl中,我有一个按钮,我想将其命令绑定到我的ViewModel命令。我可以这样做吗?
答案 0 :(得分:1)
是的,您可以向用户控件添加routed event,按下按钮时会调用该控件。
然后,当用户控件事件触发时,您可以使用各种技术来调用视图模型动词。
E.g。您可以使用attached property,或者我建议使用Caliburn.Micro等具有Actions的MVVM框架,使其更加直接。
答案 1 :(得分:0)
我找到了...我可以在我的用户控件中定义DependencyProperty typof RelayCommand并将我的DependencyProperty绑定到我的ViewModel命令
答案 2 :(得分:0)
我不太确定你的意思,但我试了一下。
在您的代码中,定义RoutedCommand:
public partial class MyUserControl : UserControl
{
public static RoutedCommand Click =
new RoutedCommand("Click", typeof(UserControl));
}
然后是xaml,设置命令绑定:
<UserControl.CommandBindings>
<CommandBinding
Command="{x:Static MyNameSpace:MyUserControl.Click}"
CanExecute="ClickCanExecute"
Executed="ClickExecuted"/>
</UserControl.CommandBindings>
然后在后面的代码中添加处理程序:
private void ClickCanExecute(object sender, CanExecuteRoutedEventArgs e)
{
e.CanExecute = true;
}
private void ClickExecuted(object sender, ExecutedRoutedEventArgs e)
{
// TODO execution logic goes here
}
我接近了吗? :)