保存UI控件/页面状态

时间:2018-10-02 11:28:28

标签: c# xaml uwp desktop-application

我们有一个具有Telegram Desktop之类的聊天风格的应用程序:在窗口的右侧,通讯员列表在左侧-对话框消息的日期列表与所选通讯员分组。现在我们使用字典来保存每个对话框的当前状态。 通过选择通讯员,我们获得了显示对话框的存在控件,或者创建了新控件,并将其绑定到ContentPresenter:

    <ContentPresenter Content="{x:Bind ViewModel.DetailsDialog, Mode=OneWay}"/>

在字典中添加了三个或更多控件后,UI开始冻结(禁止滚动等),内存和处理器未过载(大约占处理器的6%,内存为50 mb)。

所以我的问题是,如何通过保存控件或页面的UI状态来达到最佳性能?

1 个答案:

答案 0 :(得分:0)

与其节省大量资源的UI元素,通常最好将状态存储在包含所有数据的视图模型类中,然后使用数据绑定将状态数据绑定到“新的”新UI实例。