Я использовал ReactiveUI с WinForms и просто переключился на DynamicData, используя SourceList вместо ReactiveBindingList.
В соответствии с этой проблемой добавлена поддержка WinForms IBindingList Collection.
У меня есть список, который я привязываю к списку строк.Чтобы заставить его работать с WinForms, я создал BindingList, который подключен к SourceList:
var Images = new SourceList<string>();
var ImagesBindableWinForms = new BindingList<string>();
Images.Connect().Bind(ImagesBindableWinForms).Subscribe();
Затем BindingList привязывается к списку следующим образом, который работает как:
d(this.Bind(ViewModel, x => x.AdInfo.ImagesBindableWinForms, x => x.listImages.DataSource));
Есть кнопка для удаления элементов из списка.Его следует отключить, если список пуст.До переключения на SourceList это работало:
ViewModel.DeleteImageCmd = ReactiveCommand.Create(DeleteImage, ViewModel.CanDeleteImage());
public IObservable<bool> CanDeleteImage()
{
var canDeleteImage = this.WhenAnyValue(vm => vm.AdInfo.Images.Count)
.Select(x => x > 0);
return canDeleteImage;
}
Код включал или отключал кнопку в зависимости от количества списков.
Тот же код больше не работает.Я полагаю, что при обновлении счетчика событие не запускается.
Как бы я отключил кнопку, если SourceList пуст?