方法
既存プログラムの開発者が自作した、ボタンを押すたびに色の切り替わる機能つきのボタンであったためxxxAutomationPeer
オブジェクトを介して実装する方法でも手の施しようがないようでした。
他方で調査を行った結果
<MouseBinding Gesture="LeftClick" {Binding SomeCommand}" />
の{Binding SomeCommand}
がICommand
で定義されており、これを含むUserControl
にはICommand
オブジェクトを返すプロパティがあることが判明したため、それによって得られたオブジェクトを利用しICommand.Execute()
を実行すれば、一応行わせたかった振る舞いをさせることが出来ました。
前提・実現したいこと
登場人物は既存プログラム
と作成プログラム
です。
既存プログラム
はWPFアプリです。
作成プログラム
はフォームアプリです。
作成プログラム
は既存プログラム
を動的に参照しており、別スレッドで起動させます。
作成プログラム
は起動させた既存プログラム
を操作して自動的にある手順を完了させることが目的です。
ここで、既存プログラム
上で<MouseBinding Gesture="LeftClick" Command = "{Binding SomeCommand}" />
といふうにクリック時イベントを定義されたコントロールがあります。
それに対して、**作成プログラム
からクリック時イベント処理を実行させたい。**というのが「実現したいこと」です。
ButtonAutomationPeerを利用する方法もあることは把握していますが、対象となるコントロールはButton
ではありません。
また、この質問においてソースコードの提示は行えません。
理由は
- 該当ソースコードが社外秘である
- WPFアプリを開発したことがない
- 正確に状況を再現するためにはUserControlを作成したり、さらにその中で動的にコントロールを生成しなくてはならないため、すぐに用意できない
です。
このような質問なので具体的な解決策を得るのは無論困難と理解しています。
「こうすればいんじゃね?」といったお知恵を頂けたら大変ありがたいです。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
- Visual Studio 2015 SP1
- Windows 7 64bit
回答1件
あなたの回答
tips
プレビュー