2012年12月10日月曜日

ゆっくりMovieMaker3 開発日記 - 37 「UserControlで実装したEventが上手く働かない!! → 解決」

前回からの作業内容
  • 数値設定用コントロールの改良
    • 応答性の改善
    • UndoRedoの改善
  • いくつかの細かいバグの修正
    • ゆっくりボイスの音量に関して
    • 字幕の表示に関して
  • アイテム編集ウィンドウのExpanderの状態を保存するように
\バグつぶし楽しい!/ \バグつぶし楽しい!/ \バグつぶし楽しい!/




UserControlで実装したEventが上手く働かない!!

<Style TargetType="{x:Type my:自作コントロール}">
  <EventSetter Event="発生させたいイベント" Handler="On発生させたいイベント "/>
</Style>
とxaml側に記述し、実行してみると

{"'プロパティ 'System.Windows.EventSetter.Event' の Set で例外がスローされました。' 行番号 '21'、行位置 '47'。"}


とエラーが。

試しにTargetTypeをButtonに、EventをClickにしてみると正常に動く。
ググってみるとこんなページが。

EventSetter bug?
http://social.msdn.microsoft.com/Forums/en/wpf/thread/e376cd80-c675-48ce-b01f-f94a82cb51f4

どうやら、XAML側でイベントを扱うにはRoutedEventじゃないとダメだそうで、UserControl側でRoutedEventを作成してやれば上手く動きました。
この問題を解決するだけで1時間程度浪費。。。

0 件のコメント:

コメントを投稿