我一直在使用文本来确定按钮状态,并想知道它是否被普遍接受?
我有一个数据网格视图,其中包含一个项目列表和一个“完成”按钮。当用户单击完成按钮时,单元格将突出显示为绿色,以标记它已完成。
然后我将按钮文本更改为“撤消”。因此,每当用户滚动“绿色”单元格时,按钮文本将更改为“撤消”。
我使用该文本来确定单击按钮时要执行的操作。
这可以吗?或者我应该使用某种状态监视器?
答案 0 :(得分:0)
我认为这几乎是不可接受的,但仍然很糟糕。
将状态存储在变量中并不会花费太多精力,并且会使代码更易于维护(不要混合处理和GUI)。
当您以某种方式更改按钮的文本时,您也必须调整检查。
此外,这使得更新GUI(多线程等)变得更加容易。
答案 1 :(得分:0)
在许多情况下,我赞成使用私有字段来指示控件的逻辑状态,以及导致控件本身属性以合理及时的方式更新的属性。如果与控件本身的属性有一个交互点,并且假设字段始终表示有效状态,那么非UI线程代码可以更改控件的状态,而不必将其自身与UI线程;它只需要确保在下一次方便时有待更新控件的请求。
尽管您的特定示例并未涉及任何线程问题,因此并未真正从通过将控制状态与逻辑状态分离所提供的线程的简易性中受益,对于需要多个的情况使用相同的模式对于不会减少必须处理的不同模式数量的案例的线程支持。此外,如果您使用自己的字段来表示控件可以具有的不同状态,则可以确保它们永远不会表示模糊或无效状态。例如,如果一段代码将按钮设置为" UNDO"而不是"撤消",其他一些代码可能会决定"它不会撤消'因此它应该保存"有些可能会决定" 34;它不是Save
,所以它应该撤消"`,有些可能什么都不做,有些人可能会发出尖叫声。此外,可能难以添加任何其他状态或指示。例如,人们可能想要添加到"撤消"按钮指示将要撤消的内容。如果使用字段来跟踪状态,则可以添加这样的功能而不会干扰区分" save"和"撤消&#34 ;;或者添加另一个字段以跟踪显示撤消按钮时应指示的具体操作,或者具有"更新按钮文本"例程使用现有字段来确定。