c# - 如何使用 Viewmodel-first 从代码隐藏设置 viewmodel 属性?

标签 c# wpf xaml mvvm viewmodel

在我的 WPF (4.0) 应用程序中,我使用的是 Viewmodel-first 模式。因此,首先创建我的 View 模型,然后是 View - 使用数据模板。可以找到工作演示 here .

现在,在创建的 View (代码隐藏)中,我需要修改 View 模型的属性。在 View-first 方法中,我将简单地访问一个命名的 viewmodel 实例。但是,Viewmodel-first 方法不允许这样做。有一个 View 模型,但 View 不关心它是什么。

差:

当然你可以得到 DataContext 并使用它,但这有效地耦合了 View 和 t View 模型。

private void MyView_Loaded(object sender, RoutedEventArgs e)
{
    this.viewModel = DataContext as MyViewModel;
}

必须为此推荐一个模式。命令?消息?请帮忙!

问:如何修改(设置属性)事件 View 模型?

最佳答案

使用绑定(bind)将数据从 View 传递到 ViewModel,并使用命令来激活 ViewModel。

命令应该使用绑定(bind)来在 ViewModel 上执行命令。

应该使用消息在 ViewModel 之间进行通信。

.

关于c# - 如何使用 Viewmodel-first 从代码隐藏设置 viewmodel 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14276343/

相关文章:

wpf - 将 TabControl 的标题放在右侧并垂直放置它的文本

c# - 如何根据先前的选择过滤下拉列表

c# - 进程正在运行,从不工作

c# - 显示 .gif 并在访问服务器期间继续播放 - asp .net

c# - 在 ViewModel 中具有静态 DbContext 的 WPF 应用程序

wpf - 哪本 WPF 书籍详细介绍了 GetContainerForItemOverride 和相关内容?

c# - Storyboard找不到 ControlTemplate 元素

c# - 写完 C# 代码后,在哪里可以找到可执行程序

c# - 如何立即从异步循环返回值?

wpf - ControlTemplate TargetType 与模板化类型不匹配