- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用带有 MVVM 的 MahApps.metro WPF 库。我有一个 ViewModel,我需要从中显示一个对话框。 MetroWindow 有 ShowMessageAsync。但是从 ViewModel 访问它的正确方法是什么?据我了解,我需要一个 View 实例,但将其传递给 ViewModel 似乎不是一个好方法。
最佳答案
使用以下方法:
Action<T>
ShowMessageAsync
在您的 ViewModel
您正在与窗口绑定(bind)。 protected override void OnAttached()
{
base.OnAttached();
this.AssociatedObject.Loaded += AssociatedObject_Loaded;
}
void AssociatedObject_Loaded(object sender, RoutedEventArgs e)
{
if (this.AssociatedObject.DataContext is WindowViewModel)
{
WindowViewModel vm = this.AssociatedObject.DataContext as WindowViewModel;
vm.ShowMessageAsync = OnShowMessageAsync;
}
}
private void OnShowMessageAsync(T param)
{
//Write your logic to call ShowMessageAsync method.
}
ViewModel
您的
MainWindow
您将能够打开另一个子窗口。
关于wpf - 如何从 ViewModel 访问 MetroWindow 的 ShowMessageAsync 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30224624/
我使用 MVVM 模式创建了最简单的 WPF 项目。如何从我的 viewModel 调用 ShowMessageAsync? if (DisciplineText!="") { Disc
我正在使用 Mahapp,我正在尝试等待对话框的结果,但编译器在 ShowMessageAsync 下划线并显示我: ShowMessageAsync doesn't exist in the cur
我有一个使用 MahApps.Metro UI 的 WPF C# 应用程序资源。我正在尝试绑定(bind) progress dialog控制来自另一个类的方法调用,并在逐步执行该方法时手动增加进度条
我有一个关于 await this.ShowMessageAsync() 方法的小问题。我在谷歌上搜索了很多我的问题,但还没有成功。 我收到以下代码的错误“;预期” private void remo
我正在使用带有 MVVM 的 MahApps.metro WPF 库。我有一个 ViewModel,我需要从中显示一个对话框。 MetroWindow 有 ShowMessageAsync。但是从 V
我有这个方法 public async void setState(int state) { switch (state) {
我是一名优秀的程序员,十分优秀!