【问题标题】:Binding multiple controls to an entity将多个控件绑定到实体
【发布时间】:2014-04-07 09:53:24
【问题描述】:

我正在构建一个应用程序,它通过 Visual Studio 2010 中内置的 Microsoft 实体模型框架连接到数据库。

这是我的问题:

我有两个 ComboBox 正在使用表 Places。每次我更改其中一个组合框的选定项目时,另一个框也会更改它。这意味着我在两个组合框中始终具有相同的值。

我认为这与他们共享的实体有关。我该如何拆分它?我不想创建两个数据库表,并保持简单。

这是我将两个组合框绑定到实体的方法。

this.comboBoxDeparturePlace.DataSource = this.m_DatabaseEntity.Places;
this.comboBoxDestinationPlace.DataSource = this.m_DatabaseEntity.Places;

感谢您的帮助!

编辑:

我的模型如下所示:

SelectedItem 是一个具有这些属性(ID、DisplayName、PostalCode、Name)的地方

DisplayName 是 ComboBox 上显示的值。

ID 是 SelectedValue。

【问题讨论】:

    标签: c# winforms entity-framework


    【解决方案1】:

    我解决了这个问题/行为。

    我猜实体表使用索引,类似于数据绑定源。每次SelectedItem 更改时,它都会更改表上的索引,从而更改另一个ComboBoxSelectedItem

    我创建了两个列表,然后将它们用作DataSource。这两个列表将有自己的索引,因此将彼此完全分开。

    List<Place> placeListFrom = new List<Place>(this.m_DatabaseEntity.Places);
    List<Place> placeListTo = new List<Place>(this.m_DatabaseEntity.Places);
    
    this.comboBoxDeparturePlace.DataSource = placeListFrom;
    this.comboBoxDestinationPlace.DataSource = placeListTo;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-25
      相关资源
      最近更新 更多