c# - 更改视图时填充 RAM
问题描述
我不小心在我的应用程序中发现了一个问题。我正在使用模板 MVVM。如果我开始在视图之间切换 RAM 开始填满并且不释放。
经过 1 分钟的简单视图更改 https://imgur.com/9r6ULJZ
我真的不知道如何找到问题所在。我会给你尽可能多的信息
我初始化 MainWindowViewModel 中的所有视图(它在应用程序启动时首先初始化)
private static ViewModel1 VM1;
private static ViewModel2 VM2;
public MainWindowViewModel()
{
VM1 = VM1?? new ViewModel1();
VM2 = VM2?? new ViewModel2();
}
要获取任何视图的实例,我使用这个
public static ViewMidel1 GetVM1()
{
if (VM1 == null)
VM1 = new ViewMidel1();
return VM1 ;
}
换个角度看
ViewMidel1 vm = MainWindowViewMidel.GetVM1();
所有视图都是用户控件。当视图更改时,所有视图都会触发属性。
也许我做错了什么?
视图的构造函数仅在程序启动时调用。
诊断会话 https://gofile.io/?c=pamZlT
更新 1:
我从所有 VM 中删除了所有代码,但它没有帮助。xaml 有问题。 https://imgur.com/2oS6d7h
更新 2: 每次我选择视图时,这个 xaml 都会在 RAM 中添加 ~15-20 mb。图像大小 108kb
<Ellipse Grid.Column="1" Grid.Row="2" Grid.ColumnSpan="2" Grid.RowSpan="2" Margin="5,5,5,5">
<Ellipse.Fill>
<ImageBrush ImageSource="/Resources/Images/image.jpg" Stretch="UniformToFill"/>
</Ellipse.Fill>
</Ellipse>
解决方案
推荐阅读
- python - 按自定义聚合函数python分组
- amazon-web-services - AWS Athena:HIVE_UNKNOWN_ERROR:无法创建输入格式
- python-3.x - python 3不和谐机器人
- javascript - 为什么我的状态在承诺中返回不同的值?
- go - 换行符上的右括号无法编译
- java - 将真值设置为布尔变量不起作用 - primefaces
- android - 即使对于新项目,Android gradle 构建也会失败
- ios - 变量未在按钮按下操作内部更新
- c# - ECDH nodejs 和 C# 密钥交换
- mongodb - 是否可以使用猫鼬来更新带有数学表达式的文档?