文章目录
- 注册两个ViewModel关联-Interaction
-
- 在 Avalonia 框架中的 Interaction
- 作用目的
- 典型的使用场景
-
- 显示对话框:
- 文件操作:
- 定义交互属性
- 示例代码
- 视图层处理交互
- 总结
- 例子-实现两个界面信息传递
-
- Interaction注册
- 在主VIEWModel中注册异步方法按钮
- 主viewModel对应的显示xaml-使用ReactiveUI 框架
- 子界面返回数据
- convent类
-
- 基于代码更改显示背景
记录下dialog的实现
注册两个ViewModel关联-Interaction
在 Avalonia 框架中的 Interaction
以 Avalonia 框架为例,它提供了 Interaction<TInput, TOutput> 泛型类来实现交互机制。
作用目的
在 MVVM 模式里,视图模型不应该直接引用视图层的控件或窗口等,因为这会破坏模式的解耦性。但实际开发中,视图模型可能需要触发一些与视图相关的操作,比如显示对话框、打开文件选择器等。Interaction 就是为了解决这类问题而设计的,它提供了一种松耦合的方式让视图模型发起交互请求,由视图层负责处理这些请求并返回结果给视图模型。
典型的使用场景
显示对话框:
视图模型需要提示用户进行某些选择或输入信息,比如确认操作、输入数据等,这时可以使用 Interaction 来显示一个对话框,并获取用户的输入结果。
文件操作:
当视图模型需要用户选择文件或保存文件时,通过 Interaction 可以触发视图层的文件选择器或保存对话框&#