-
Notifications
You must be signed in to change notification settings - Fork 1
Commads
ekral edited this page Nov 6, 2017
·
14 revisions
- Následující příklady demonstrují na zkrácených ukázkách použití jednoduchého commandu bez parametru. Kompletní ukázku najdete v tomto projektu.
<Button Command="{Binding CommandNovyStudent}" Content="Vytvoř nového studenta"/>public class RelayCommand : ICommand
{
private Action _action;
public RelayCommand(Action action)
{
_action = action;
}
public void Execute()
{
_action?.Invoke();
}public class Data : ViewModelBase
{
public RelayCommand CommandNovyStudent { get; set; }
public Data()
{
CommandNovyStudent = new RelayCommand(OnNovyStudent);
}
private void OnNovyStudent()
{
// Pridani noveho studenta
}- Následující příklady demonstrují na zkrácených ukázkách použití jednoduchého commandu s parametrem pomocí RelayCommandu a atributu CommandParameter pro předávání parametrů. Kompletní příklad včetně použití CanChange najdete v tomto projektu.
<Button Content="Přičti 1" Command="{Binding CommandZmena}" CommandParameter="1" />public class RelayCommand : ICommand
{
private Action<object> _action;
public RelayCommand(Action<object> action)
{
_action = action;
}
public void Execute(object parameter)
{
_action?.Invoke(parameter);
}class Data : INotifyPropertyChanged
{
public RelayCommand CommandZmena { get; set; }
public Data()
{
CommandZmena = new RelayCommand(Zmen);
}
private void Zmen(object param)
{
if (param is string retezec)
{
if (int.TryParse(retezec, out int cislo))
{
// zmena
}
}
}