我正在尝试使用 ReactiveProperty 和 ReactiveCollection 设置链接的组合框。我有这样的 ItemViewModel:
public class ItemViewModel : BindableBase
{
public ItemViewModel (string name)
{
this.Name = name;
this.Range = Enumerable.Range(0, 10).ToList();
}
public string Name { get; }
public List<int> Range { get; }
}
和父视图模型:
public MainViewModel()
{
this.Collection = new ReactiveCollection<ItemViewModel>();
for (int i = 0; i < 10; i++)
{
this.Collection.Add(new ItemViewModel (i.ToString()));
}
this.SecondCollection = this.ObserveProperty(x => x.SelectedItem).Select(x => x.Value.Range).ToReadOnlyReactiveCollection();
}
public ReactiveCollection<TestViewModel> Collection { get; }
public ReadOnlyReactiveCollection<int> SecondCollection { get; }
public ReactiveProperty<TestViewModel> SelectedItem { get; } = new ReactiveProperty<TestViewModel>(mode: ReactivePropertyMode.None);
我有 ItemViewModel 的集合(Collection 属性),当 SelectedItem 从 Collection 属性更改为项目时,我需要从 SelectedItem 的 Range 集合中填充 SecondCollection
我怎样才能做到?