我对非常复杂的 UI 有以下要求。(这里的复杂意味着表单中有很多控件 [大约 100])。我正在使用MVVM(如果我的问题需要它稍微远离 MVVM,我可以接受)
我的问题是Editable ComboBox和TextBox。但我想说我喜欢听一个适合所有控件的通用算法。
要求1:用户编辑内容并转到下一个控件,控件/文本的颜色应变为红色。
要求 2:当用户回到之前编辑的控件并输入最初存在的值时,控件/文本的颜色应该变回黑色。
我知道这个要求很严格,我一直在努力设计一个通用算法,使用它我可以存储以前的值并调用一个函数来更改控件的颜色。
为了给大家一个想法,
--> 我尝试为每个 TextBox 存储 2 个属性,例如 Default_Text 和 Text。但由于属性数量巨大,内存占用非常巨大。保持这么多属性也非常困难。
--> 我尝试向每个 ViewModel 添加一个字典来存储已更改的值。但在这里我面临的问题是为我的应用程序中的所有控件提供唯一键,这不是很有帮助
-->我什至考虑过并尝试将控件子类化,如 TextBox、ComboBox 并覆盖一些方法以满足我的要求,但遗憾的是当我开始添加验证和所有内容时,我失败了。
所以在这里我坚持设计一个通用的 WPF 属性系统/算法来处理所有撤消重做功能、更改控件样式等!!!
如果您的专家能够指导我正确的方向并帮助我开发这样的算法/系统,那将是非常棒的。一个示例插图会很好!