none
PerformClickの代わりになるものは RRS feed

  • 質問

  • WPFのButtonで

    以前までのButtonコントロールにあったメソッド、PerformClickが見当たらないのですが、

    コードからButtonのクリックを実行するにはどうしたらよいのでしょうか?

    2006年9月20日 3:19

回答

  • 私は、PerformClick メソッド自体、有用だと思っていない人です。

    Button_Click イベントに書かれた処理をメソッド化して、
    双方で呼び出せば済む話だと思っています。

    事実、私はそうしています。
    その方がわかりやすいですから。

    # Button1.PerformClick() では、何のかわかりにくい。

    2006年9月21日 0:00

すべての返信

  • .NetFramework RC1 を使用していますが、たしかに PerformClick はありませんねぇ。
    Clickイベント発行とはちょっと違いますが、RoutedCommand と CommandBindings を使用していれば、
    RoutedCommandのExecuteメソッドで代用出来ます。

    2006年9月20日 7:02
  • Button1_Click(Button1, New System.Windows.RoutedEventArgs)

    これでは?

    2006年9月20日 23:54
  • 私は、PerformClick メソッド自体、有用だと思っていない人です。

    Button_Click イベントに書かれた処理をメソッド化して、
    双方で呼び出せば済む話だと思っています。

    事実、私はそうしています。
    その方がわかりやすいですから。

    # Button1.PerformClick() では、何のかわかりにくい。

    2006年9月21日 0:00
  •  うなまな さんからの引用

    Button1_Click(Button1, New System.Windows.RoutedEventArgs)

    その呼び出し方であれば、

    Button1.RaiseEvent( new RoutedEventArgs( ButtonBase.ClickEvent ) );

    の方が正当かも。

    ただ、この呼び出しでも、Buttonに設定されているCommandは発行されませんでした。

    2006年9月21日 5:30


  • AutomationPeer peer =
        UIElementAutomationPeer.CreatePeerForElement(Button1);
    IInvokeProvider invokeProv =
        peer.GetPattern(PatternInterface.Invoke) as IInvokeProvider;
    if ( invokeProv != null ) {
        invokeProv.Invoke();
    }

     

     

    最近AutomationPeerを調べたのですが、これが正解かも。
    2007年3月29日 4:18