在列表中查找数据绑定到ComboBox

时间:2017-06-21 08:09:27

标签: c# winforms data-binding combobox

这个问题可能已经得到解答,但在30分钟的研究中我找不到解决方案 情况如下:
我正在开发一个C#Windows Forms项目。 我有一个名为'viewMain'的表格。 Part of the layout of 'viewMain'
这两个类别也很重要:
class 'Auftrag' class 'AuftragErp'

使用winforms设计器,我将两个bindingSource添加到Form中。一个用于Auftrag的对象,一个用于AuftragErp的对象。 auftragBindingSource的DataSource设置为Auftrag的实例。 auftragErpBindingSource的DataSource设置为AuftraegeErp - 实例的Auftrag属性。

现在我可以开始描述这个问题了。表单上的ComboBox Auswahl绑定到auftragErpBindingSource,因此始终反映AuftraegeErp列表中的对象。当我单击表单上的按钮时,我想获得对组合框中当前所选对象的引用。

我发现这可以通过使用uftragErpBindingSource.Current来实现。 但由于BindingSource是私有的,我无法从Auftrag实例访问它们。

我不想在表单的事件处理程序中获取此引用,因为那时我仍然必须将它传递给Auftrag实例。如果我在哪里这样做,那么我觉得我可以完全没有数据绑定。我使用数据绑定的主要原因是不必担心保持对象和gui同步。

所以基本上我在课堂上有一个列表。此列表绑定到comboBox。从类的内部我想从列表中获取当前在组合框中选择的对象。

我感谢每一个答案,希望有人能帮助我。

编辑以澄清:diagram of use case此图显示了类和GUI之间的关系。在用户使用组合框进行选择后,他可以单击按钮。然后onClick事件处理程序调用'doSomething'方法。此方法需要所选对象才能运行。该方法可以通过多种方式获得必要的对象。我在图纸中展示了两个。 a)该方法从列表中获取其自己的类中的对象,或者b)该方法通过使用表单上的bindingSource的.Current属性来获取对象。
我想使用方法a,因为那样我就不必在模型和视图之间传递任何变量或对象。仅数据绑定将确保GUI始终是最新的。但我不知道如何实施方法a。

0 个答案:

没有答案