在MVVM中点击按钮的用户控件的调用方法

时间:2016-01-09 21:05:23

标签: c# wpf xaml mvvm

我有一个MVVM应用程序。好吧,出于各种原因,它并非完全 100%纯MVVM,但我试图遵循其最重要的原则。

我想在Foobar点击时调用MyUserControl中包含的MyUserControl.xaml.cs类的Button方法(执行纯视图相关逻辑)。 ButtonMyUserControl实例都存在于同一PageView中(其数据上下文是一些不相关的视图模型)。

<Button Click="Foobar"/>不起作用,因为存根显示在PageView.xaml.cs而不是MyUserControl.xaml.cs

是否可以将Button的Click事件与XAML中的Foobar调用相关联?

2 个答案:

答案 0 :(得分:2)

如果您确实需要通过XAML执行此操作,可以尝试将公共属性ICommand添加到MyUserControl类并在此命令中执行Foobar方法。然后将它绑定在PageView的xaml中,如下所示:

<Button Command="{Binding ElementName=myUserControl, Path=FoobarCommand}" />

答案 1 :(得分:0)

是的Yhea是可能的。在MVVM中应该使用ICommand。 然后你可以简单地称呼你这样的方法:

<Button Command={Binding CFoobar} .../>

使用CFoobar作为Viewmodel(DataContext)中方法的命令。 我希望我们正在谈论同样的问题。

相关问题