使用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的代码感到不舒服。)
- 3 回答
- 0 关注
- 1129 浏览
添加回答
举报
0/150
提交
取消