我目前正在开发一个使用WPF编写的UI。我非常喜欢WPF的一点是它能帮助你编写更加松散、隔离的UI组件。但是在WPF中,有一个痛点就是这些隔离的UI组件有时需要相互通信 : )。这可能是由于我的UI经验相对较少,特别是在WPF方面(我不是新手,但我的大部分工作比UI设计更低级)。
无论何时,UI的中心区域都会显示三个视图之一,实现为UserControl,我们称之为A、B和C视图。
用户将在不同的时间切换这些视图,并且有多种切换视图的方式(这对客户来说很好,但目前在代码设计方面会导致一些问题)。
现在,每个视图切换机制都会执行自己的操作以过渡到另一个视图。某个单例类负责存储数据并在视图之间进行通信。我不喜欢这样,因为它很混乱,容易出错,而且单例类对UI的细节了解得太多了。我想尽可能地消除它。
今天我遇到了一个与切换视图的时间有关的错误。简单来说,当一个视图被卸载时,另一个视图需要执行一些清理工作,但是这个清理会删除另一个视图所需的一些数据。如果清理在另一个视图加载后运行,就会出现问题。你明白我的意思吗?很混乱。
我正在尝试退后一步,想象一种不同的方式来加载这些视图所需的数据以完成它们的工作。你们中的一些经验丰富的UI/WPF人员肯定遇到过类似的问题。我有一些想法,但我希望有人能在这里向我提供更简洁的方法。我不喜欢依赖操作顺序(在高层次上)让代码正常工作。非常感谢您提供的任何帮助。
无论何时,UI的中心区域都会显示三个视图之一,实现为UserControl,我们称之为A、B和C视图。
用户将在不同的时间切换这些视图,并且有多种切换视图的方式(这对客户来说很好,但目前在代码设计方面会导致一些问题)。
现在,每个视图切换机制都会执行自己的操作以过渡到另一个视图。某个单例类负责存储数据并在视图之间进行通信。我不喜欢这样,因为它很混乱,容易出错,而且单例类对UI的细节了解得太多了。我想尽可能地消除它。
今天我遇到了一个与切换视图的时间有关的错误。简单来说,当一个视图被卸载时,另一个视图需要执行一些清理工作,但是这个清理会删除另一个视图所需的一些数据。如果清理在另一个视图加载后运行,就会出现问题。你明白我的意思吗?很混乱。
我正在尝试退后一步,想象一种不同的方式来加载这些视图所需的数据以完成它们的工作。你们中的一些经验丰富的UI/WPF人员肯定遇到过类似的问题。我有一些想法,但我希望有人能在这里向我提供更简洁的方法。我不喜欢依赖操作顺序(在高层次上)让代码正常工作。非常感谢您提供的任何帮助。