ここから本文です

現在,wpfアプリケーションの勉強をしています. プログラムが思うように動作せず...

ryo********さん

2014/4/2420:29:31

現在,wpfアプリケーションの勉強をしています.
プログラムが思うように動作せず,困っています.

実現したい動作は,画面上のLabelの内容を,内部のforループのカウントに合わせて,1,2,3...というように変化させるものです.
ループの中でlabelのContentを変更してみたところ,最終的に処理が終わって画面を操作できる状態になるまでlabelの表示が反映されませんでした.
自身で調べたところ,フォームアプリケーションであればUpdateメソッドなどを用いて表示を更新できるようなのですが,wpfの場合にどのようにすればよいかはわかりませんでした.
お手数ですが,どなたかご教授いただけませんでしょうか?

閲覧数:
354
回答数:
1
お礼:
500枚

違反報告

ベストアンサーに選ばれた回答

kkk********さん

2014/4/2823:18:31

いくつか対応法がありますが、一番スマートで汎用性があるのは拡張メソッドを用意することでしょうか。以下サンプルコードです。

public static class ExtentionMethods
{
private static Action _emptyAction = () => { };

public static void Refresh(this UIElement element)
{
element.Dispatcher.Invoke(DispatcherPriority.Render, _emptyAction);
}
}

このように定義しておけば

label.Content = count.ToString();
//label.Updateの代わりに以下のように使えます。
label.Refresh();

この回答は投票によってベストアンサーに選ばれました!

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる