例如,我在Booking
课程中有一个方法可以更新dataGridView
中的BookingForm
控件。
Booking booking = new Booking();
booking.getBookings(dataGridViewBooking);
类似地:
booking.getTables(comboBoxTables);
使用控件作为参数是不好的做法?我已将所有textBox
参数更改为字符串并传递textBox.Text
但是如何使用其他控件执行类似的操作,或者有更好的方法可以执行此操作吗?
答案 0 :(得分:3)
您可以将控件作为参数传递。它们是可以传递的普通物体。
将UI对象传递给某种业务逻辑是有问题的。业务逻辑不应该对UI有任何了解。
此外,如果您可以选择传递textBox.Text
,则可以简化该方法的逻辑。可能该方法不应该涉及从UI中提取数据。 SRP适用。
答案 1 :(得分:1)
通常,您尝试将控件与数据区分开来。我建议你阅读BindingList
。创建一个包含要显示的所有字段的中间记录类,每个字段都是一个Property。然后创建一个。该类型的BindingList
并将其分配给您网格的DataSource
。