gpt4 book ai didi

wpf - 在 WPF 上查询 MVVM 设计模式

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

我正在使用 MVVM 架构。

我有一个用户控件加州大学 作为 查看

型号 模型数据 类(class)

查看型号 ( UCViewModel ) 绑定(bind)到用户控件。

我在用户控件 内还有另外三个用户控件加州大学 (上面讨论过)。

假设 uc1、uc2 和 uc3。

以及 中 uc1 、 uc2 和 uc3 的可见性加州大学 取决于选择的类型(选择了哪个单选按钮)。

由于 UC 绑定(bind)到 UCViewModel,我必须在 UCViewModel 中完成与 uc1 、 uc2 和 uc3 相关的所有工作。我可以将虚拟机分别用于 uc1、uc2 和 uc3 吗?如果是,我该怎么做?请帮忙!!

最佳答案

据我了解您的问题,您可以通过 UC 来解决这个问题。公开一个 SelectedSubView (或其他)属性(property):

public object SelectedSubView { get; }

同时,您将单选按钮绑定(bind)到 UC 的其他属性。并更新 SelectedSubView相应地(记得实现 INotifyPropertyChanged)。根据选定的单选按钮属性, SelectedSubView必须返回适当的 ViewModel。

然后绑定(bind) ContentPresenterSelectedSubView属性(property)和用途 数据模板 根据当前 SelectedSubView 的类型选择正确的用户控件(uc1、uc2 或 uc3) .

由于您只想隐藏非事件 View ,因此最好保留它们各自的 ViewModel,因此您可能希望在 UC 中设置它们的字段。类(class)
public class UC
{
private MyFirstViewModel vm1;
private MySecondViewModel vm2;
private MyThirdViewModel vm3;
private object selectedVM;

public object SelectedSubView
{
get { return this.selectedVM; }
}

// This method should be called whenever one of the radio buttons
// are updated (from their bindings)
private void UpdateSelectedView()
{
this.selectedVM = // pick from vm1, vm2, vm3 according to radio button

// Remember to raise INotifyPropertyChanged for SelectedSubView
}
}

关于wpf - 在 WPF 上查询 MVVM 设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2400108/

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