タグ

2021年8月24日のブックマーク (3件)

  • WPF4.5入門 その57「コマンド」 - かずきのBlog@hatena

    WPFには、ICommandインターフェースというユーザーの操作を抽象化する仕組みがあります。ICommandインターフェースは、以下のように定義されています。 public interface ICommand { // コマンドを実行するかどうかに影響するような変更があった場合に発生します。 event EventHandler CanExecuteChanged; // 現在の状態でこのコマンドを実行できるかどうかを判断するメソッドを定義します。 // // パラメーター: // parameter: // コマンドで使用されたデータ。 コマンドにデータを渡す必要がない場合は、このオブジェクトを null に設定できます。 // // 戻り値: // このコマンドを実行できる場合は true。それ以外の場合は false。 bool CanExecute(object paramet

    WPF4.5入門 その57「コマンド」 - かずきのBlog@hatena
  • 【WPF】Viewにコマンドを作る?RoutedCommandを作ってみよう | さんさめのC#ブログ

    こんにちは、働くC#プログラマーのさんさめです。 記事では、RoutedCommandという、 WPFが提供するICommand実装クラスを自分で作ってみるやり方を紹介します。 MVVMといえば、コードビハインドには何も書かないのが主流(?)ですが、 「Viewで完結する処理」なら、 むしろViewModelに処理を持たせない方がすっきりします。 RoutedCommandはそんなView向けの実装をするときに使えます。 そもそもRoutedCommandとは?WPFが提供するICommandインタフェース実装クラスです。 LivetでいうViewModelCommandPrismでいうDelegateCommand の仲間みたいなものです(目的とするところはだいぶ違いますが…) ともあれ使い方を見ていきましょう。 RoutedCommandを用意して呼び出すまでの手順以下の手順で呼び出

    【WPF】Viewにコマンドを作る?RoutedCommandを作ってみよう | さんさめのC#ブログ
  • CanExecuteChangedめんどくさい問題を調べてみた - Qiita

    概要 ICommandはWPFでは出番が多いが、実装が面倒と評判ではある。 その実装で楽をするために、DelegateCommandやRelayCommandと呼ばれる実装方法が定番になっているが、CanExecuteChangedを呼ぶ処理の実装はまちまちである(下手すると実装されていない)。 ここではCanExecuteChangedを呼ぶ処理の実装を何種類か挙げる。 まずはCanExecuteChangedを呼んでいない例 "DelegateCommand"でググるとそこそこ出てくる。 public class DelegateCommand : ICommand { Action<object> _execute; Predicate<object> _canExecute; public DelegateCommand(Action<object> execute, Predic

    CanExecuteChangedめんどくさい問題を調べてみた - Qiita