私はWPFアプリケーションでLinqとObservableCollectionsに問題があります。問題のLinqとObservableCollection
コンテキスト:ユーザーとBankAccounts:
私は2つのテーブルを持つ非常に単純なSQLデータベースを作成しました。 ユーザーテーブルには、BankAccountsテーブルと1対多の関係があります。次に、Linq-to-SQLデータ・グラフを作成しました。これはうまくいきました==> 2つのテーブル間のアソシエーションも検出されました。
次の私が正常に動作し、すべてのユーザーを盗んする関数を作成しました:
DataClassesDataContext dc = new DataClassesDataContext
var query = from u in dc.Users
select u;
は今、私は、各ユーザ(まだ非常にそうではなく)に新しい銀行口座のを追加するとします。 私はすべて正常に動作します上記の次のコード
for each(User u in query)
{
u.BankAccounts.Add(New BankAccount());
}
を追加することができます。 BankAccountsプロパティは、自動的にUserクラスの一部です。これは、データベースとLinq DataClassesのアソシエーションのためです。
しかし、私のアプリケーションでは、最初にクエリ結果をObservableCollectionに追加します。これにより、私はあらゆる種類のデータバインディングと変更を使用することができました。これは次のコードによって実現されます。
ObservableCollection<User> oUsers = new ObservableCollection<User>(query);
問題:のObservableCollectionの中で、私はそれがタイプで、今のEntitySet <であるため、ユーザーBankAccountsプロパティを持つanytingを行う>ことはできません。だから私はもうこれ以上のことはできない。 queryresultsがのObservableCollectionに追加されたときに
for each(User u in oUsers)
{
u.BankAccounts.Add(New BankAccount());
}
はどういうわけか、もうuser.BankAccountsのプロパティをアクセスもすることはできません。ただし、リストボックスのようなコントロールにBankAccountsプロパティをバインドすることは可能で、正しいデータが含まれています。
誰かが私がobservableCollction(または同様のコレクション)をどのように作成して、これらの "assosiated"プロパティにアクセスできるかを今誰かが知っていますか?私は本当に解決策を楽しみにしています。
ありがとうございます! 敬具、
バZweeris E:[email protected]