2009-07-29 25 views
3

私はListViewを検索中に読み込む項目が多数あります。 そして、より豊かなユーザーインターフェイスをユーザーに提供して、読み込み時に円(AJAX待機中)を表示したいと思います。WPF読み込みアニメーション

私はスレッドやその他のものに入る必要があることを認識していますが、これまでにWPFでこれまでやったことがないので、WPF(またはsimpe BackgroundWorker)のスレッドよりも優れています。

とにかく、読み込み中にそのアニメーションを表示することがポイントです。 ありがとう!

答えて

2

OK私は今、実用的なソリューションを持っています。

私は私はそのアニメーションを含むUserControlを持っています。これは、XAMLコードのどこかに、<customControls:LoadingAnimation x:Name="LoadingAnimation" />のように配置されています。私はそのアニメーションをロード ()BeginInvokeメソッドを呼び出す前に、私は、時間のかかる作業を行うためにボタンをクリックすると今

LoadingAnimation.Show(); 

を呼び出すことによってneedeときに、このコントロールがロードされます。

その後、ハードワークが終了したら、私はLoadingAnimation.Hide(). と呼んでいます。私は他の人のためのコードを追加します:

private void SearchClick(object sender, RoutedEventArgs e) 
{ 
    LoadingAnimation.Show(); 

    new StringDelegate(DoSearch).BeginInvoke("TextToSearch", null, null); 
} 

private void DoSearch(string searchText) 
{ 
    object result = /* Do the time consuming work */  

    Dispatcher.BeginInvoke(DispatcherPriority.Normal, 
     new ResultDelagate(UpdateUserInterface), result); 
} 

private void UpdateUserInterface(object result) 
{ 
    LoadingAnimation.Hide();    

    DataContext = result as /* what you want */; 
} 
+0

ちょっと不思議なことに、どうやってキャンセル部分を解決しましたか? – cwap

+1

ステータスがIsSearchingで、データトリガーを使用してユーザーコントロールを表示および非表示にする – TerrorAustralis

関連する問題