【问题标题】:How to programmatically create/populate view respecting MVVM?如何以编程方式创建/填充关于 MVVM 的视图?
【发布时间】:2012-05-03 13:10:08
【问题描述】:

在我的 WPF 应用程序中,我有一个由三个视图(自定义用户控件)组成的 MainView。我的视图布局已完成(在 XAML 中),但现在我必须读取配置文件并填充我的视图。当我阅读配置文件时,应该创建模型对象以及视图项。

更复杂的视图(我们称之为 View1)将包含由一组按类别分隔的按钮的选项卡(排列在 StackPanels+GroupBox 中)。

由于视图的主要组件是触发模型操作的按钮,我的问题是:如何使用 MVVM 实现这一点?

ViewModel 会负责创建它的视图吗?如果不是,它将如何使用命令?

附:我正在使用 MVVM Light Toolkit

【问题讨论】:

    标签: wpf mvvm mvvm-light


    【解决方案1】:

    不,ViewModel 不负责创建其视图。通常人们使用 XAML DataTemplates 将 ViewModel 对象映射到 UserControl。这被称为“ViewModel 优先”。 您也可以自己创建视图,并手动注入 ViewModel。这称为“先查看”。一般来说,首先 ViewModel 似乎更受欢迎。

    我不确定您的按钮有什么问题。您只需在 ViewModel 中公开 RelayCommands,然后在视图中将按钮绑定到它们。

    【讨论】:

    • 谢谢你的回答。我可能想多了。我是 wpf 的新手,在不知道我的视图中会出现什么、有多少按钮和什么样的按钮的情况下处理它很棘手。我将尝试深入研究代码,看看会发生什么。跨度>
    • 是的,要掌握窍门很棘手。尝试考虑 ViewModel 上的命令,而不是视图上的按钮。这是所有胆量所在的 ViewModel。视图只是位于顶部的薄“皮肤”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-10
    • 2012-03-29
    • 1970-01-01
    相关资源
    最近更新 更多