为了账号安全,请及时绑定邮箱和手机立即绑定

使用MVVM处理WPF中的对话框

使用MVVM处理WPF中的对话框

慕码人2483693 2019-07-29 10:00:51
使用MVVM处理WPF中的对话框在WPF的MVVM模式中,处理对话框是更复杂的操作之一。由于您的视图模型对视图一无所知,因此对话通信很有趣。我可以公开一个ICommand,当视图调用它时,会出现一个对话框。有没有人知道处理对话结果的好方法?我说的是关于Windows对话框,比如MessageBox。我们这样做的方法之一是在viewmodel上有一个事件,当需要对话框时,视图会订阅该事件。public event EventHandler<MyDeleteArgs> RequiresDeleteDialog;这没关系,但这意味着视图需要代码,这是我想远离的东西。
查看完整描述

3 回答

?
撒科打诨

TA贡献1934条经验 获得超2个赞

我建议放弃1990年代的模态对话框,而是将控件实现为覆盖(画布+绝对定位),其中可视性与VM中的布尔值相关联。更接近ajax类型控件。

这非常有用:

<BooleanToVisibilityConverter x:Key="booltoVis" />

如:

<my:ErrorControl Visibility="{Binding Path=ThereWasAnError, Mode=TwoWay, Converter={StaticResource booltoVis}, UpdateSourceTrigger=PropertyChanged}"/>

这是我如何实现一个用户控件。单击“x”会关闭usercontrol代码后面的一行代码中的控件。(因为我在一个dll中的.exe和ViewModels中有我的视图,所以我对操作UI的代码感到不舒服。)



查看完整回答
反对 回复 2019-07-29
  • 3 回答
  • 0 关注
  • 1129 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信