Caliburn.Micro 2.0和IViewAware实施问题

时间:2014-11-02 17:15:50

标签: mvvm caliburn.micro

这个问题可能只能由CM撰稿人回答。

ViewAwareIViewAware的基本实现,它使用内部实用程序类WeakValueDictionary来缓存视图。 IViewAware的外部实现者无法访问此类。

CM 1.5.x依赖于Dictionary<object, object>来实现缓存。

我无法在代码中看到CM 2.0中的任何依赖项,在实现WeakValueDictionary时需要使用IViewAware

我只是想确保我没有遗漏一些微妙的东西?在实施WeakValueDictionary时,我是否必须使用IViewAware,或Dictionary<object, object>是否仍然足够?

1 个答案:

答案 0 :(得分:1)

只要您努力管理自己的观点,

Dictionary<object, object>就可以了。 IViewAware没有办法清除视图。在内置类Screen中清除Deactivate上的视图,只要您将视图模型组合在一起就会发生。

使用WeakValueDictionary为我们提供了一些蠕动空间,这意味着我们不会继续使用不再使用的视图。

我们当然可以考虑提供WeakValueDictionary来帮助解决这个问题。