初始化后,通过更改其模型视图属性来更新WPF窗口中列表视图的内容

时间:2018-11-29 11:32:42

标签: c# wpf mvvm revit

我正在使用一个Revit插件,该插件显示一个WPF窗口来操纵一些收集的数据,并将其发送回Revit命令以执行逻辑。 我正在尝试使用MVVM方法,因此在作为入口点的命令中,我遵循以下逻辑:

  1. 将数据收集到模型的2个列表中。
  2. 使用2个列表实例化参数化视图模型。
  3. 使用视图模型实例化窗口,然后使用ShowDialog()实例化。
  4. 处理数据。
  5. 终止窗口并获取其对话框结果。
  6. 从视图模型实例中获取操纵数据,并对其进行处理。
  7. 提交对Revit模型的更改。

一切似乎都可以正常工作,但问题是,如果模型很大并且第二个列表的数据收集可能要花一些时间,并且用户在窗口出现之前需要一会儿旋转器,这给人的印象是Revit具有冻结的。

然后我尝试使用空的list2实例化模型视图以尽早显示窗口,并可能使用以下步骤实现进度条:

  1. 收集列表1
  2. 使用列表1和示例列表2实例化虚拟机
  3. 显示窗口
  4. 收集列表2
  5. 更改VM实例中的List2属性
  6. 恢复上面相同的逻辑...

但是该寡妇仅在填充list1的情况下显示。 我怀疑显示WPF窗口后应用程序会卡住,并且该命令永远不会继续执行,但是我不确定如何调试它。我应该使用线程显示窗口吗?如果可以,我该怎么办?

0 个答案:

没有答案