Catel嵌套UserControl:ViewModel实例化多次(使用Example)

时间:2016-06-06 10:16:06

标签: catel

我遇到了Catel问题,ViewModel被多次实例化。

这是我自己的问题的重复,但旧的问题是一个大墙的文本(没有帮助),现在我决定包括一个演示项目。

可以从这里下载演示项目: Demo-Project (VS2013)

以下是问题:

  • 运行项目,
  • 打开一个客户(双击或选择"编辑")
  • 观察:订单的嵌套控件:" OrderViewModelID"是11 ... 20(实际上你看不到16 ... 20,忘了滚动查看器)

    - >它应该是" 1 ... 10"因为它是Order创建的前10个ViewModel。

    - >原因:OrderViewModel是每个模型实例化的多个时间

  • 点击" New Shipper" (任何订单)
  • "取消"新窗口
  • 观察:" OrderViewModelID"现在是21 ...... 30(他们又被实例化了!!!)

我已经在这个问题上花了很多时间,而我却找不到原因。

任何帮助/见解?

Johannes Colmsee

2 个答案:

答案 0 :(得分:0)

这是一个错误。它已修复,请参阅issue report以获取最新信息。

顺便说一句。我真的建议你使用Catel.Fody,它会产生更清晰的视图模型。

答案 1 :(得分:-1)

我必须告诉你,Bug只是部分修复了。

我将突出显示仍然被打破的步骤:

  • 运行项目,
  • 打开一位客户(双击或选择"编辑")

  • 观察:订单的嵌套控件:" OrderViewModelID"是11 ... 20(实际上你看不到16 ... 20,忘了滚动查看器)

    - >它应该是" 1 ... 10"因为它是Order创建的前10个ViewModel。

    - >原因:OrderViewModel是每个模型实例化的多个时间

- 点击"新托运人" (任何订单)

- "取消"新窗口

- 观察:" OrderViewModelID"现在是21 ...... 30(他们又被实例化了!!!)

更新

这是一个已修复的Catel 4.4中的错误。链接到Catel Issue Tracker Item