Tag: waf framework c#

实现自己的“工厂”以重用WPF中的视图

我目前正在使用WAF(WPF应用程序框架)在WPF中进行编程。 我非常喜欢为我的应用程序中的每个小视图单元创建一个自己的ViewModel,我随后以这种方式实现了它。 在我的项目中,我得到了一个复杂的列表,其中每个list-element也包含一个列表。 由于复杂性,每个list和list-list元素都是一个自己的ViewModel。 “最坏情况”场景总共包含60-90个视图模型,仅用于列表视图。 (这是一个问题列表,其中每个问题都有一个带有评级和其他ui元素的答案列表)。 这种实现效果很好,但性能非常糟糕。 在分析后,我发现当我在一组问题之间切换时,错误导致创建我的ViewModel(因为必须再次生成整个列表)。 当我在问题集之间切换时,我无法重复我的观点1:1,因为问题的数量不同。 但是,我认为我可以重用给定的视图模型并在必要时添加(如果新集合需要更多视图)更多视图模型。 因此我写了以下工厂: [Export] public class ViewModelPerformanceFactory where T : IPerformanceFactoryViewModel { private List _collection; private int _index; private readonly ExportFactory _exportFactory; [ImportingConstructor] public ViewModelPerformanceFactory(ExportFactory exportFactory) { _exportFactory = exportFactory; _index = 0; } public void Reset() { _index = 0; if (_collection == null) { return; […]