在MVVM中单击按钮时调用用户控件的方法
本文关键字:用户 控件 方法 调用 MVVM 单击 按钮 | 更新日期: 2023-09-27 18:29:35
我有一个MVVM应用程序。好吧,由于各种原因,它并不是完全100%纯MVVM,但我正在努力遵循它最重要的原则。
我想在Button
点击时调用MyUserControl.xaml.cs
中包含的MyUserControl
类的Foobar
方法(它执行纯视图相关逻辑)。Button
和MyUserControl
实例都存在于同一个PageView
中(其数据上下文是一些不相关的视图模型)。
<Button Click="Foobar"/>
不起作用,因为存根出现在PageView.xaml.cs
而不是MyUserControl.xaml.cs
中。
是否可以将Button
的Click事件与XAML中的Foobar
调用链接起来?
如果你真的需要通过XAML来实现,你可以尝试将一个公共属性ICommand添加到你的MyUserControl类中,并在这个命令中执行Foobar方法。然后将其绑定到PageView的xaml中,如下所示:
<Button Command="{Binding ElementName=myUserControl, Path=FoobarCommand}" />
<Button Command={Binding CFoobar} .../>
CFoobar是Viewmodel(DataContext)中方法的命令。我希望我们谈论的是同样的问题。