ユーザーが自分のリストで使用可能なアイテム(モジュール)の1つをクリックすると、次のコードを使用して選択したアイテム(ユーザーコントロール)の新しいインスタンスを作成し、私のtabGroupArea。wpf c#ユーザーコントロールを別のスレッドにロード
object uc = Activator.CreateInstance(Type.GetType("myNamespace." + selectedItem.Parameter1Value), selectedItem);
Infragistics.Windows.DockManager.ContentPane contentPane = new Infragistics.Windows.DockManager.ContentPane();
contentPane.Content = uc;
tabGroupArea.Items.Add(contentPane);
私が持っている問題はのSelectedItemは、その内部のInitializeComponentをユーザーコントロールを持っている場合()アプリケーションがフリーズすると、ユーザーは任意のことを行うことができない一方で完了するまでにしばらく時間がかかるだろうが、私は
を置くためにさまざまな方法を試してみましたobject uc = Activator.CreateInstance(Type.GetType("myNamespace." + selectedItem.Parameter1Value), selectedItem);
別のスレッド(Backgroundworker、スレッド、デリゲート)で、私はユーザーにloadinページを表示することができます。しかし、私はそれを行うためにとにかく見つけることができませんでした。 ご協力いただければ幸いです。ありがとう。
こんにちはGeertさん、ありがとうございます、私のオブジェクトを作成する代理人とあなたのPleaseWaitWindowを使用する方法のサンプルがあります。デリゲートを作成してxで置き換える必要があります:Catel.Windows.PleaseWaitHelper.Show(X()=> Thread.Sleep(2000));しかし、私はエラーが発生しています。 – Asha
Thread.Sleep(2000)がその例です。また、次のようなデリゲートを渡すこともできます。 public void MyMethodToExecute() { Thread.Sleep(); } public void OnCommandExecuted() { PleaseWaitHelper.Show(MyMethodToExecute); } –