トップ回答者
OnApplyTemplateが呼ばれるタイミングについて

質問
-
損と申します。
VS2010+Blend4+Silverlight4で開発しております。OnApplyTemplateが呼ばれるタイミングが分からず、困っております。
SilverlightアプリケーションでTestというプロジェクトを作成し、MainPage.xaml.csでOnApplyTemplateをoverrideしました。
以下のようなコードになりましたが、MessageBoxは表示されません。
この場合、OnApplyTemplateは呼ばれないものなのでしょうか。
参考になるページでも構いませんので、ご教示頂けると幸いです。using System.Windows;
using System.Windows.Controls;namespace Test
{
public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
}public override void OnApplyTemplate()
{
base.OnApplyTemplate();
MessageBox.Show("ここは通らない?");
}
}
}2011年3月19日 7:44
回答
-
もうこのページは見ているとは思いますが、念のため
FrameworkElement.OnApplyTemplate メソッド
OnApplyTemplateメソッドはControlTemplateを読み込み、その各部を参照できるようにするたびに呼ばれます。
ちなみにOnApplyTemplateメソッドは、ControlTemplateで当てたVisual要素にアクセスしたい時などに使われます。UserControlの場合、XAMLで定義したVisual要素には普通にアクセスできるのでOnApplyTemplateメソッドをオーバライドする必要はない気がしますが、どのようなことを行いたいのでしょうか?
- 回答としてマーク 損 2011年3月21日 0:37
2011年3月19日 13:34 -
ご返信、有難うございます。
ご紹介頂いたページは参照しておりましたが、私の理解力ではUserControlのOnApplyTemplateも呼ばれるように思い、質問いたしました。
本来の使い方としては、描画が完了した後にコントロールを追加したり、見た目を変更したりすることを想定されているとは思いますが、今回は別の問題の解決策としてOnApplyTemplateが使えないかと調査をしております。やりたいこととしては、Loadedイベント内でイベントを処理したいのですが、Loadedイベント内では他のイベント(INotifyDataErrorInfoのGetErrors等)が処理されない(?私の理解力不足?)ようなので、調査をしているという段階です。
まずはMainPageのUserControlのOnApplyTemplateは呼ばれないということで理解致しました。
- 回答としてマーク 損 2011年3月21日 0:37
2011年3月21日 0:37
すべての返信
-
もうこのページは見ているとは思いますが、念のため
FrameworkElement.OnApplyTemplate メソッド
OnApplyTemplateメソッドはControlTemplateを読み込み、その各部を参照できるようにするたびに呼ばれます。
ちなみにOnApplyTemplateメソッドは、ControlTemplateで当てたVisual要素にアクセスしたい時などに使われます。UserControlの場合、XAMLで定義したVisual要素には普通にアクセスできるのでOnApplyTemplateメソッドをオーバライドする必要はない気がしますが、どのようなことを行いたいのでしょうか?
- 回答としてマーク 損 2011年3月21日 0:37
2011年3月19日 13:34 -
ご返信、有難うございます。
ご紹介頂いたページは参照しておりましたが、私の理解力ではUserControlのOnApplyTemplateも呼ばれるように思い、質問いたしました。
本来の使い方としては、描画が完了した後にコントロールを追加したり、見た目を変更したりすることを想定されているとは思いますが、今回は別の問題の解決策としてOnApplyTemplateが使えないかと調査をしております。やりたいこととしては、Loadedイベント内でイベントを処理したいのですが、Loadedイベント内では他のイベント(INotifyDataErrorInfoのGetErrors等)が処理されない(?私の理解力不足?)ようなので、調査をしているという段階です。
まずはMainPageのUserControlのOnApplyTemplateは呼ばれないということで理解致しました。
- 回答としてマーク 損 2011年3月21日 0:37
2011年3月21日 0:37