1

こんにちは私はWPF、EF、MVVM(.NET4.0)を使用してアプリケーションを設計しています。

データをバインドしているときにUIがフリーズするという問題に直面しています。これは遅延読み込みが原因だと思います。

MVVM:

        ThreadPool.QueueUserWorkItem(state =>
        {
                IsProgressBarVisible(true);

                var service = Context.SomeModel.ToList();
                BgServiceCompleted(service);
        });

XAML:

"{Binding OrderItemViews.SOmeModel_A.SomeModel_B.SOmeField}"
"{Binding OrderItemViews.Country.Name}"

いくつかのモデル:

public class SomeModel_A
{
    public int Id { get; set; }
    ....        
    public int SomeB_Id { get; set; }
    public virtual SomeModel_B SomeModel_B { get; set; }
}

私はこの問題の解決策を見つけました。

1)ItemsSource-BindingでIsAsync-Propertyを設定します。

"{Binding OrderItemViews.SOmeModel_A.SomeModel_B.SOmeField, IsAsync=true}"

インターフェイスはフリーズしませんが、しばらくすると値が表示されます。これにより、一部のユーザーが混乱します。

2)インクルードデータのロードにインクルードを使用します。例えば:

Context.SomeModel.Include(a => a.SomeModel2).Load();

しかし、私の場合、ContextにはIncludeがありません。なんで?

この問題を解決するための最良の方法はどれですか?

それをどのように行うべきか、またはそれについて読んで学ぶことができる有用なリソースについてのガイダンスを教えてください。ありがとう

4

1 に答える 1

1

インクルードは標準ライブラリの一部ではないため、を追加する必要がありますusing System.Data.Entity;。それができない場合、返されるタイプは何Context.SomeModelですか?

于 2012-10-26T10:53:18.507 に答える