如何选中/切换当前活动表格的任何控件(复选框/单选按钮)?
我的目标是创建一个名为自动保存更改的选项,这样可以保存当前状态check boxes
和radio buttons
,因此我需要知道何时控制是选择/切换(执行保存设置方法)。我不想为每个控件创建一个单独的事件处理程序,如果可能的话,我正在寻找一个通用的解决方案。
答案 0 :(得分:6)
这不是用户界面的工作。
使用数据绑定在代码隐藏中更改模型,让模型触发/升级更改。
为了帮助你一点点:
您的复选框和其他控件不您的数据所在的位置。他们应该只显示数据。
创建一个对象(Model),其中包含复选框的复选框和int / enum属性的布尔属性。设置从控件到属性的数据绑定。
然后,您可以在属性的Setters中实现必要的逻辑。
答案 1 :(得分:0)
正如Henk所提议的,您可以使用Separation of Concerns模式(如MVC)来分隔UI和域逻辑。当用户对某个UI窗口小部件进行更改时,您可以更新模型中的值,例如通过设置属性。然后,属性设置器可以更新IsDirty
(或HasChanges,...)字段。这个属性将由UI读取,根据IsDirty的值,它将决定需要做什么。 (显示MessageBox(“您想保存更改”)或其他内容)
我确实认为当你用WinForms
标记问题时,Henk正在考虑网络。您可能没有使用模式来分隔UI和域逻辑。 (并且UI和域代码已经交织在一起,以至于您当前的截止日期不允许您立即引入模型)
您可以通过在Form
上放置IsDirty字段并将Changed EventHandlers
设置为IsDirty值来实现相同的功能。通过继承Form(即将IsDirty放在你的'FormBase'上)和你的控件(例如通过引入水印),你可以为所有表单开箱即用。