在viewmodel层里面,我有一个方法是处理Button事件,这个事件就是把数据导出到Excel表中。但是导入的时间会有3到4秒钟,所以我在这个导入的过程中用另一个窗体显示等待的过程,这个窗体的内容很简单,就是用PrograssBar滑动。当导入结束之后,那么这个窗体也自动关闭。 求问改怎么处理啊?
------解决思路----------------------
你是说两个窗体使用同一个ViewModel 实例么?这应该也是可以的。
假设这样做,那么你的第一个窗体先创建一个“busy进度条窗体”,但是虽然加载可是隐藏不可见。但是不论是第一个窗体还是它初始化时创建的第二个窗体,都将自己的环境绑定到这同一个 ViewModel 对象上。
在 ViewModel 上有一个“进度条刻度”属性。
将第二个窗体的“是否可见”绑定到这个属性值 >0 且 < 100 的条件上(显然需要在xaml声明上使用某种 ValueConvertor 将整数映射为boolean值)。再将进度条刻度的前端表现跟ViewModel上的刻度绑定。如果有标题文字,也绑定。
这样,你只要改变 ViewModel 上的进度条刻度,那么第二个窗体就自动出现或者隐藏了。而且所有其它的内容也是一样地,你只要控制这个 ViewModel 中的业务属性值即可,不用对界面编程!