Ho un pulsante su una vista che è associata tramite RoutedUICommand a un comando definito nel ViewModel.Come utilizzare il testo di un comando indirizzato come contenuto del pulsante
Il codice XAML estratto dalla vista:
<Button Content="Login" Command="{Binding Login}" />
Nel CodeBehind della vista aggiungo il comando associazione dal ViewModel alla raccolta vincolante della vista:
this.CommandBindings.Add(viewModel.LoginCommandBinding);
Il ViewModel si implementa il comando :
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;
}
}
Quindi il comando è stato definito con il testo e na io sia "Login". Il pulsante stesso ha il contenuto "Login". C'è un modo per usare il testo del comando come contenuto del pulsante?
Sì, ho sentito dire che questo dovrebbe funzionare. Questa è la ragione per cui ti sto chiedendo. E no, rimuovere la proprietà Content dal codice xaml non fa il trucco. Il pulsante rimane vuoto. – PVitt
OK, mi dispiace, mi è sembrata una domanda troppo facile ... – Timores