2009-09-27 123 views
0

我的问题涉及到Windows窗体上新手OO问题

比方说,我有一个客户和订单组合框,并依赖于对这些组合框所做的选择我填充所有订单细节数据网格。

我对datagrid行内的双击事件感兴趣。

在事件2件事情都可能发生:

  • 记录已被删除。
  • 一个或两个组合框已更改。

没有OO经验,我正在处理代码隐藏中的所有逻辑。

这是一件错误的事情吗?我应该创建一个返回布尔类型的类是否取消事件,或者在满足所有条件的情况下执行其他操作?

如果我创建一个处理该逻辑的类,那么该类需要引用datagrid和所有关联的控件及其先前值和当前值。

我只是困惑。

回答

3

我不确定这是否是OO问题:有关patterns的更多信息。

如果我是你,我会看看MVC(Model View Controller),MVP(Model View Presenter)等。 Martin Fowler是此主题的主要权威之一。

MVVM在WPF中很受欢迎 - 不确定数据绑定是否在Forms中能胜任。

其中一个关键的问题是,如果您将逻辑与显示器gubbins分开,那么测试将变得非常容易。

0

面向对象的做事方式是任何人都无法在一个镜头中告诉你的。这是一个全新的思维模式,可以用少量交互对象来解决问题。这些对象来自您正在为其创建解决方案的问题域。

从问题中,我可以轻松挑选至少两个问题域对象 - 一个是“客户”,另一个是“订单”。 可能是你的“订单”类是由“OrderItem”的各种对象组成的,它是由对“产品”之一的参考,数量和价格构成的。

如果这有点难以理解,我敢肯定,您至少会拥有一个具有持久存储数据的表的数据库。您拥有的表(在许多情况下)可以对应于您需要设计的实际类。

你不必设计独立的类,实际上可以使用datagrid和其他控件,它们可以保留在代码后面。但是,所有业务域对象和可以在这些对象上执行的操作都必须封装到类中。