【问题标题】:Save UI control/page state保存 UI 控件/页面状态
【发布时间】:2018-10-02 11:28:27
【问题描述】:

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

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

将三个或更多控件添加到字典后,UI 开始冻结(禁用滚动等),内存和处理器没有过载(大约 6% 的处理器和 50 mb 的 RAM)。

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

【问题讨论】:

    标签: c# xaml uwp desktop-application


    【解决方案1】:

    与其保存耗费资源的 UI 元素,不如将状态存储在包含所有数据的视图模型类中,然后使用数据绑定将状态数据绑定到“新”的新 UI 实例。

    【讨论】:

    • 我在尝试您提出的方法,几次迭代之前,但在将分组列表滚动到特定位置时遇到了困难。您能否提供一些在视图模型中保存 UI 状态的示例?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-08
    • 1970-01-01
    • 2013-09-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多