Windows PhoneでピボットコントロールにObservableCollectionモデルを実装し、LINQを使用してSQLデータベースからデータを取得します。これは最初の設定でうまく動作します。2番目のLINQクエリを実行するとObservableCollectionが更新されませんか?
私はDBにいくつかの変更を加えた後、UI(とObservableColletion)の変更を反映するためにLINQクエリを再度実行したいと考えています。ObservableCollectionが新しい私がLINQクエリから期待する値。
private ObservableCollection<ComicItem> m_showingComicsListModel;
public ObservableCollection<ComicItem> ShowingComicsListModel
{
...
}
...
var comicsSelectedInDB = from ComicItem item in comicListDb.Items
where item.IsShowing == true
select item;
m_showingComicsListModel = new ObservableCollection<ComicItem>(comicsSelectedInDB);
showingComicsListModel
を初めて評価されるときに、それが適切にモデルに移入されます。しかし、私はDBにいくつかの変更を行い、このコードをもう一度実行した後、ShowingComicsListModel
は変更されておらず、セッターは呼び出されません。
ObservableCollectionをLINQで更新する正しい方法は何ですか?
非常に良い、ありがとう!私は実際にあなたの最初の提案をしましたが、モデルが再投入されているときに大きな遅れがあることに気付きました。あなたの2番目の提案では、それだけでは動作しませんが、遅れはありません!ありがとう:) –
実際には、1つのコメント;後者のコード例は私のためには機能しませんでした。私は明示的に 'RaisePropertyChanged'をLINQクエリを実行し、値を設定するメソッドの中で呼び出さなければなりませんでした。この場合、setterは決して呼び出されませんでした(デバッガでチェックされました)。しかし、これは私のために働いた:[リンク](https://github.com/kypeli/WPDailyComic/blob/master/ComicBrowser/ViewModels/ComicListModel.cs#L76) –
あなたはフィールドを直接設定し、プロパティセッターを使わない – Jehof