MVVMLight和禁用/启用按钮

时间:2017-08-10 06:00:12

标签: c# xamarin.android mvvm-light

我有一个Recyclerview显示有开关和按钮的项目的视图。切换项目的开关时,我需要启用或禁用该视图的按钮。我怎么能用MVVMLight和Xamarin.Android做到这一点?我可以获得一些示例代码吗?我将swith.checked绑定到我的ViewModel中的RelayCommand。

1 个答案:

答案 0 :(得分:0)

假设以下ViewModel:

private bool _switch = true;

// Bind switch.IsChecked to this property:
public bool Switch 
{
    get => _switch; 
    set => Set( nameof(Switch), ref _switch, value); 
}

private RelayCommand _btnCmd;
public RelayCommand ButtonCommand => _btnCmd ?? (_btnCmd = 
                        new RelayCommand(ButtonCommand_Execute, ButtonCommand_CanExecute));

// What will happen on Button Click    
private void ButtonCommand_Execute(){ /* ...*/ }

// Sets the Enabled Property of the Button according to the state of the Switch property.
private bool ButtonCommand_CanExecute() { return Switch; }

这应该可以解决问题。 在您需要明确通知CanExecute值更改的情况下,您可以致电ButtonCommand.RaiseCanExecuteChanged()

这就是我在WPF中的表现;不过,我不知道是否与Xamarin有一些特色。