这个问题可能已经得到解答,但在30分钟的研究中我找不到解决方案
情况如下:
我正在开发一个C#Windows Forms项目。
我有一个名为'viewMain'的表格。
这两个类别也很重要:
使用winforms设计器,我将两个bindingSource添加到Form中。一个用于Auftrag
的对象,一个用于AuftragErp
的对象。 auftragBindingSource
的DataSource设置为Auftrag
的实例。 auftragErpBindingSource
的DataSource设置为AuftraegeErp
- 实例的Auftrag
属性。
现在我可以开始描述这个问题了。表单上的ComboBox Auswahl
绑定到auftragErpBindingSource
,因此始终反映AuftraegeErp
列表中的对象。当我单击表单上的按钮时,我想获得对组合框中当前所选对象的引用。
我发现这可以通过使用uftragErpBindingSource.Current
来实现。
但由于BindingSource是私有的,我无法从Auftrag
实例访问它们。
我不想在表单的事件处理程序中获取此引用,因为那时我仍然必须将它传递给Auftrag
实例。如果我在哪里这样做,那么我觉得我可以完全没有数据绑定。我使用数据绑定的主要原因是不必担心保持对象和gui同步。
所以基本上我在课堂上有一个列表。此列表绑定到comboBox。从类的内部我想从列表中获取当前在组合框中选择的对象。
我感谢每一个答案,希望有人能帮助我。
编辑以澄清:此图显示了类和GUI之间的关系。在用户使用组合框进行选择后,他可以单击按钮。然后onClick事件处理程序调用'doSomething'方法。此方法需要所选对象才能运行。该方法可以通过多种方式获得必要的对象。我在图纸中展示了两个。 a)该方法从列表中获取其自己的类中的对象,或者b)该方法通过使用表单上的bindingSource的.Current属性来获取对象。
我想使用方法a,因为那样我就不必在模型和视图之间传递任何变量或对象。仅数据绑定将确保GUI始终是最新的。但我不知道如何实施方法a。