gpt4 book ai didi

c# - 使用 WPF MVVM 模式实现接口(interface)

转载 作者:行者123 更新时间:2023-12-03 10:20:08 25 4
gpt4 key购买 nike

我想为一组 WPF 用户控件实现一个接口(interface)(添加行为)。
我正在使用 MVVM 设计模式。
我应该在哪里实现接口(interface)?在用户控件代码后面或 View 模型类中?

前任:

我的界面是

interface IWizard
{
event RoutedEventHandler MoveNext;
event RoutedEventHandler MoveBack;
event RoutedEventHandler Cancelled;

bool IsLast;
bool IsFirst;
}

现在在其他地方我想访问实现这个接口(interface)的用户控件。
 ((IWizard)userControl).MoveNext += ...
((IWizard)userControl).MoveBack += ...
((IWizard)userControl).IsLast = true;

ETC..

后面的 UserControl 代码中实现

我无法直接在 View 模型中访问接口(interface)的属性/方法。我必须手动链接它们。对 ?

PS:在这个例子中我想绑定(bind)(双向绑定(bind)) IsLast具有按钮可见性的属性。

在 View 模型类中实现

我无法将用户控件作为接口(interface)对象访问。
例如: ((IWizard)userControl).MoveNext += ...
使用 MVVM 设计模式在用户控件上实现接口(interface)的最佳实践是什么?

最佳答案

您应该在 UserControl 中实现该接口(interface),因为它与 UserControl 直接相关,与 ViewModel 无关。 View Model 用于业务逻辑以及 View 和 Model 之间的交互。 UI/View 上发生的事件不应该直接在 ViewModel 上做任何事情。

我知道您将无法直接在 View 模型中访问属性,但这就是 MVVM 的用途。使用绑定(bind)和命令将 Control 中的属性和方法绑定(bind)到您的 ViewModel

关于c# - 使用 WPF MVVM 模式实现接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8840185/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com