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