Sen*_*ncy 0 c# wpf interface mvvm
我想为WPF用户控件集实现一个接口(添加行为).我正在使用MVVM设计模式.我应该在哪里实现界面?在View模型类后面或中的usercontrol代码中?
例如:
我的界面是
interface IWizard
{
event RoutedEventHandler MoveNext;
event RoutedEventHandler MoveBack;
event RoutedEventHandler Cancelled;
bool IsLast;
bool IsFirst;
}
Run Code Online (Sandbox Code Playgroud)
现在在其他地方我想访问这个接口实现的用户控件.
((IWizard)userControl).MoveNext += ...
((IWizard)userControl).MoveBack += ...
((IWizard)userControl).IsLast = true;
Run Code Online (Sandbox Code Playgroud)
等等..
在UserControl代码后面实现
我不能直接在视图模型中访问接口的属性/方法.我必须手动链接它们.对 ?
IsLast一个按钮的可见性绑定(TwoWay Bind)属性.在View模型类中实现
我无法将usercontrol作为Interface对象访问.例如:((IWizard)userControl).MoveNext += ...
使用MVVM设计模式在Usercontrol上实现接口的最佳实践是什么?
您应该在UserControl中实现此接口,因为它与UserControl直接相关,它与ViewModel无关.View Model用于View和Model之间的业务逻辑和交互.在UI/View上发生的事件不应该直接在ViewModel上执行任何操作.
我知道你将无法直接在视图模型中访问属性,但这就是MVVM的用途.使用绑定和命令将Control中的属性和方法绑定到ViewModel
| 归档时间: |
|
| 查看次数: |
8810 次 |
| 最近记录: |