タグ

ブックマーク / nine-works.blog.ocn.ne.jp (2)

  • Nine Works: Taskを使って非同期処理 7:UIコンポーネントの操作

    Taskを使って非同期処理 7:UIコンポーネントの操作 GUIアプリケーションで時間のかかる処理を行う場合、処理が終了するまでUIがフリーズしてしまします。  これを避けるためには時間のかかる処理を非同期処理する必要がありますが、UIコンポーネントの操作はUIスレッドから行う必要があります。(他のスレッドからUIコンポーネントを操作すると例外が発生してしまいます。)  これはTaskで非同期処理を行う場合も同じです。そのため、時間のかかる部分は別スレッドで処理を行い、UIコンポーネントを操作する場合だけUIスレッドで処理を行うようにする必要があります。 UIで非同期処理といったらプログレスバーの処理でしょう。  というわけで、BackgroundWorkerを使わずにTaskを使ってプログレスバーを操作してみましょう。 ---- XAML ------------------------

  • Nine Works: WPFコントロールに独自のプロパティを作成する

    WPFコントロールに独自のプロパティを作成する WPFのユーザーコントロール等を作成する際に独自のプロパティが欲しくなることはよくある。  普通のプロパティでもXAML側から値を設定できるけれど、これだとバインディングが出来ない。  バインディングもできるようなカスタムプロパティを作成するには依存プロパティを作成する必要がある。  依存プロパティを作るにはDependencyObject(又はDependencyObjectを継承しているクラス)を継承する必要がある。(DependencyObjectのGetValueとSetValueを使用してプロパティの値の取得と設定を行うので) 以下にユーザーコントロールにCellSizeという名前の依存プロパティを作成する例を紹介。  今回は依存プロパティが主役なので、ユーザーコントロールの見た目はそのまま使用する。(XAMLではコードをかかない)

    noazoh
    noazoh 2011/06/23
  • 1