1

最初に EF 4.1 モデルを使用して構築されたデータ バインド リスト ボックスがあります。したがって、すべてのクラスが私のために構築されました。外部キーからさかのぼるテーブル データを反映する 3 つのコントロールがあるためです。this.lstBox2.ItemSource = entityContext.TableObject2.ToList() はすべてのレコードを返します。外部キー制約によって制限されている MD が表示しているレコードではありません。

TableObject2 class2 = new TableObject2();
class2.value1 = 0;
class2.value2 = "new location";

using (TKOEntities entityContext = new TKOEntities())
{
                entityContext.TableObject2.AddObject(class2);
                entityContext.SaveChanges();
                this.lstBox2.ItemsSource = null;
}

SaveChanges は、データをデータベースに更新します。ただし、コントロールは更新されません (this.lstBox2.Refresh() は機能しません)。コントロールに値を設定しようとすると。us ItemControl.ItemSource エラーも発生します。entitycontext に保存された更新された値をコントロールに割り当てるにはどうすればよいですか?

4

2 に答える 2

0

それ以外の:

this.lstBox2.ItemsSource = null;

変更を保存してリストを再構築した後、entityContext からデータを取得してみてください。

this.lstBox2.ItemsSource = entityContext.TableObject2.ToList();

確かにもっと良いアプローチがありますが、データベースからデータをすばやくリストに戻すには、これが機能するはずです。

また、簡単なコード ビットですが、オブジェクト初期化子を使用できます。

TableObject2 class2 = new TableObject2 { value1 = 0, value2 = "new location" };
于 2013-04-04T16:34:48.930 に答える