1

我正在尝试找到一种在经典 Winforms 中实现 MVP 的好方法,以及我遇到的一些解决方案(例如http://codebetter.com/blogs/jeremy.miller/archive/2007/05/25/ build-you-own-cab-part-3-the-supervising-controller-pattern.aspx)谈论在模型和视图之间使用数据绑定。我以前从未使用过数据绑定,所以我想尝试一下。

问题是,我不知道如何使用 INotifyPropertyChanged 进行简单的绑定(例如,我的模型类中的字符串到表单上的文本框),如上述文章中所建议的那样。我以为我已经解决了(这是形式,其中“模型”是我的模型类的一个实例):

txtModelName.DataBindings.Add(new Binding("Text", model, "Name"));

但是,我很快意识到这根本没有使用 INotifyPropertyChanged - 无论我是否在模型上实现该接口,它都可以正常工作。本身不是问题,但它不能按我想要的方式工作,主要问题是它是双向绑定(我只想对象绑定表单)。

我假设要么使用 INotifyPropertyChanged 进行不同的绑定方式,要么可以将如上所述完成的绑定设置为仅在一个方向上工作 - 任何人都可以在这里提供帮助,或者指出一个体面的例子吗?

我正在使用带有经典 winform 的 .Net 3.5,而不是 WPF。

谢谢

4

1 回答 1

1

事实证明,上述情况有点牵强附会。发生的事情是我从一个文本框绑定到模型,从模型绑定到另一个文本框。如果我直接更新模型,那么如果不实现 INotifyPropertyChanged,它将无法工作。

至于 2-way 绑定,我认为如果你使用这种方法,你只需要忍受它。如果你不想这样,就咬紧牙关,使用 MVP 的“被动视图”风格。

于 2009-11-10T13:09:45.400 回答