将值存储在UI控件中而不是单独的变量中?

时间:2013-07-31 08:50:58

标签: vb.net winforms

我是否知道在VB.NET中为控件创建变量有什么好处?

例如:

  1. 我使用TextBox访问textBox.Text值。

  2. 我声明一个变量来存储TextBox的值。然后,我通过变量访问该值。

  3. 哪种方法更好,更灵活?

1 个答案:

答案 0 :(得分:1)

这两种方法都有效。我个人倾向于后一种情况(单独的变量):

使用诸如TextBox之类的控件作为保存业务数据的单一位置,这是有些人不赞同的。如果您在访问它时必须首先解析值(将字符串表示形式转换回对象),或者在想要显示它时将其格式化(将对象转换为字符串表示形式),这在实践中尤其成问题。在这种情况下,我决定将实际值与控件分开存储,这样所有的解析和格式化逻辑都可以集中到一个地方,而不必在代码库中重复它。

另一方面,将值存储在单独的变量中需要保持该变量与控件同步。这正是Data Binding的好处。我假设您的问题是关于Windows窗体,其中数据绑定有些限制(但通常是足够的)。但是,如果您的UI基于WPF或Silverlight,则数据绑定功能更强大(例如,它可以通过IValueConverter自动解析/格式化)并且可以为您节省大量麻烦。 (如果您发现数据绑定过于复杂,您可以手动完成相同的工作,但这意味着订阅了大量…Changed个事件。)