Я начинаю работать с платформой ReactiveUI в проекте Silverlight и мне нужна помощь в работе с ReactiveCommands.
В моей модели представления у меня есть что-то, что выглядит примерно так (это просто упрощенная версия)пример):
public class MyViewModel : ReactiveObject
{
private int MaxRecords = 5;
public ReactiveCommand AddNewRecord { get; protected set; }
private ObservableCollection<string> _myCollection = new ObservableCollection<string>();
public ObservableCollection<string> MyCollection
{
get
{
return _myCollection;
}
set
{
_myCollection = value;
raiseCollectionChanged("MyCollection");
}
}
MyViewModel()
{
var canAddRecords = Observable.Return<bool>(MyCollection.Count < MaxRecords);
AddNewRecord = new ReactiveCommand(canAddRecords);
AddNewRecord.Subscribe(x =>
{
MyCollection.Add("foo");
}
}
}
Функция canAddRecords
оценивается при первом создании ReactiveCommand
, но не переоценивается при добавлении элементов в MyCollection
.Может кто-нибудь показать мне хороший пример того, как связать свойство canExecute
для ReactiveCommand
, чтобы оно автоматически переоценивалось в этой ситуации?