0

カスタム コントロールのコード ビハインドでコマンドをバインドしようとしています。コントロール自体にはViewModelはありませんが、それが含まれるページにはViewModelがあります。そのビュー モデルには、ボタンのクリックに対して New、Save、Delete などの複数のコマンドが定義されています。これらのボタンをプログラムで作成する必要があるため、以前は XAML バインディングを介して行われていたコードでコマンドをバインドする必要もあります。

次のアプローチを使用して、コントロールの分離コードでコマンドを定義した場合、次のようにコードでコマンドをバインドできたことに注意してください。

Click.SetCommand(newButton, commandNew);

しかし、それらは含まれているページのビューモデルに存在するため、その方法がわかりません。私は次のアプローチを採用しましたが、あまり成功していません。同じビューモデルで定義された他のプロパティのバインディングには機能しますが!

  RadButton newButton =  new RadButton(); // create a new rad button
  Binding commandBinding = new Binding(); //create a command 
  commandBinding.Path = new PropertyPath("commandNew");
  Click.SetCommand(newButton , commandBinding as ICommand);
  buttonToolbar.Items.Add(newButton );

どんな助けでも大歓迎です。ありがとう。

4

1 に答える 1

0

この問題はソートされました。コマンドを動的にバインドしている上記のコードでは、次のコード行を使用する必要がありました。

newButton.SetBinding(RadButton.CommandProperty, commandBinding);
于 2013-05-15T11:04:29.770 に答える