RoutedUICommandを介してViewModelで定義されたコマンドにバインドされているビューにボタンがあります。
ビューからのXAMLコードの抜粋:
<Button Content="Login" Command="{Binding Login}" />
ビューのCodeBehindで、ViewModelからのコマンドバインディングをビューのバインディングコレクションに追加します。
this.CommandBindings.Add( viewModel.LoginCommandBinding );
ViewModel自体は、次のコマンドを実装します。
public class LoginViewModel:ViewModelBase
{
public ICommand Login { get; private set; }
public CommandBinding LoginCommandBinding { get; private set; }
public LoginViewModel( ) {
this.Login =
new RoutedUICommand( "Login", "Login", typeof( Window ) );
this.LoginCommandBinding =
new CommandBinding( Login, LoginCommandHandler, CanExecuteHandler );
}
void LoginCommandHandler( object sender, ExecutedRoutedEventArgs e ) {
//Put code here
}
void CanExecuteHandler( object sender, CanExecuteRoutedEventArgs e ) {
return true;
}
}
そのため、コマンドはテキストと名前の両方で「ログイン」で定義されました。ボタン自体には「ログイン」という内容があります。コマンドのテキストをボタンのコンテンツとして使用する方法はありますか?