質問

私BusyIndicator作品として期待さDomainDataSource分取得します。その制御宿泊に見えない場合に設定しまIsBusy trueです。

私が使っているSilverlight4とのツールキットBusyIndicator.にーか行きのBusyIndicator.IsBusyプロパティにIsBusy性のDomainDataSourceます。のBusyIndicator制御ラップの主なグリッド(LayoutRoot)およびすべての子で制御できます。

<toolkit:BusyIndicator IsBusy="{Binding ElementName=labSampleDomainDataSource, Path=IsBusy}"  Name="busyIndicator1">
<Grid x:Name="LayoutRoot">

</Grid>
</toolkit:BusyIndicator>

問題は、BusyIndicatorな場busyIndicator1=true;ボタンをクリックします。あらゆるアイデアないということは間違いだったのか?

役に立ちましたか?

解決

UIの更新ももちろんのUI。イベントなどで使用されるボタンをクリック"をダウンロードにUI。

一部の例の中で特定のプロパティに変更、メソッドの呼び出しに制御する方法として派遣されるUI。このメソッドが呼び出しはして実際に事故が発生した場合にまでUIのスレッドがご用意で実施するため(その他何でもすでにキューにアップされた実行). IsBusy その部類に入る。

した場合にのみコードにUIのスレッドのUIを手に入れるチャンスを更新appeareance.すべきではないだけ電源をオンにする"という長期の課題がUIでthread.場合とまとめることができ、スレッドさせるための入札のUI飢餓状態のスレッドが使用できる仕事です。

代わりにしておくとよいでしょうの利用 BackgroundWorker クラスと、全ての作業に DoWork イベントで走行するタイプで異なるねじになります。

myButton_Click(object sender, RoutedEventArgs e)
{
    isbusyindicator1.IsBusy = true;
    var bw = new BackgroundWorker();
    bw.DoWork += (s, args) =>
    {
       //Stuff that takes some time
    };
    bw.RunWorkerCompleted += (s, args) =>
    {
         isbusyindicator1.IsBusy = false;
    };
    bw.RunWorkerAsync();
}

このクリックイベントは終了非常に早く、UIのスレッドを使用すると更新のUIを実際の作業を背景にねじになります。完成時のIsBusyはクリアされます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top