- 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/
如何通过 Caliburn.Micro IWindowManager Show 方法在动态创建的 MetroWindow 中绑定(bind)/创建 MetroWindow.RightWindowCom
我有一个简单的测试应用程序,它显示了一个带有附加行为的简单 Mahapps MetroWindow。问题是在附加行为时绘制了 Mahapps MetroWindow 的外边框。
我遇到一个错误名称 metroWindow 在命名空间中不存在:MahApps.Metro.Controls;assembly=MahApps.Metro"我不知道问题出在哪里我也检查了被 NuGet
我正在使用 Mahapps.MetroWindow ( http://mahapps.com/ ) 来设计我的应用程序外观,现在我正在寻找自定义 X/关闭按钮外观的正确方法。默认情况下,MetroWi
我无法在 MetroWindow 标题中更改字体粗细。我怎样才能做到这一点? 我可以在 MetroWindow 属性中设置 FontWeihgt,但它会影响我的 XAML 代码中的所有控件......
我正在使用带有 MVVM 的 MahApps.metro WPF 库。我有一个 ViewModel,我需要从中显示一个对话框。 MetroWindow 有 ShowMessageAsync。但是从 V
我对 MVVM 概念和 Caliburn 比较陌生,但我遇到了一个问题。 我正在开发的应用程序使用 Mahapps.Metro 在 WPF 上进行“类似地铁”的设计,而我正在使用 Caliburn M
我这样做: 问题是,这同时是主窗口上定义的主导体,我用它控制通过其他窗口的导航,所以我不能从 MetroWindow 继承,至少尝试更改 ViewModel 中的标题: public class S
我是一名优秀的程序员,十分优秀!