对象通信
本文关键字:通信 对象 | 更新日期: 2023-09-27 18:32:45
我有一个带有bool Selected
变量的自定义用户控件,以及检查它是否被选中的代码,如果是,它会突出显示它,如果未被选中,它会隐藏突出显示。 足够简单。
现在,我有一个填充了该对象的面板,我需要它的工作方式类似于任何文件资源管理器(例如 Windows 资源管理器)。我的意思是,如果您单击该项目,它会自行选择。这不是问题,只需单击鼠标即可。当用户想要选择其他项目时,问题就出现了。
我基本上想要的是:
每当用户单击某个项目时,所有其他项目都会取消选择,依此类推。
我试图找到最好的方法,我想到的只是一个指导这些操作的父类(更改布尔值,并调用更新函数),但它似乎太草率了,可能有点复杂。 有什么建议吗?
谢谢。
最常见的方法是"集合"组件,它管理规则,例如可以选择多少个规则,并公开有用的信息和事件(如SelectedItem和SelectedItemChanged)。
我发现我的第一个想法是我能找到的最好的(因为"重新发明轮子",如果没有,过度松弛的答案对于这种情况来说很棒)。我创建了一个包含这些用户控件列表的类,并为用户控件提供了该列表的属性。
因此,当我想选择一个用户控件时,我在它的单击事件中有一个函数,该函数位于我创建的类中,该函数取消选择它下的所有控件,并选择我单击的控件。
正如我所期望的那样,它看起来确实有点草率,但我确信,如果我真的把我的思想投入其中,我可以让它变得简单而有条理,所以以防其他人想知道并需要这些信息。