0

我正在尝试使用 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

我怎样才能做到?

4

0 回答 0