Я не нашел решения для этого, но я думаю, что это должно быть выполнимо.
У меня есть несколько элементов в коллекции, и я хочу выбрать некоторые из них.Каждый элемент имеет свойство CanInclude, содержащее элементы, которые можно выбрать, если сам по себе уже выбран.
- Item1 CanInclude: Item4, Item5
- Item2 CanInclude: Item3, Item4
- Item3 CanInclude: Item2
- Item4 CanInclude: Item1
- Item5 CanInclude: Item2, Item3
Начальный элемент выбран в другом месте.
Поэтому, если начальный элемент - Item1, я хочу иметь комбинированный список с Item4 и Item5.Если я выберу Item5 в этом поле со списком и нажму кнопку «+», я хочу получить новый Box с Item2, Item3 (из последнего флажка) и Item4 (из начального элемента) и так далее, пока не появится другой элемент, который можетбыть выбран или пользователь нажимает «ОК».
Я думал о простой коллекции в viewmodel, где [0] содержит начальный элемент, [1] выбранный элемент из 1. comboBox и так далее.Но я не знаю, как мне динамически добавлять comboBox или позволить comboBox создать элемент [n] в коллекции выбранных элементов.Также я не могу придумать способ включить все элементы свойств CanInclude уже выбранных элементов в новый флажок.
Буду очень признателен, если у кого-нибудь возникнет идея.
РЕДАКТИРОВАТЬ: Просто для пояснения я хочу что-то вроде этого (псевдокод включен, так как вы не можете сделать {Binding} + {Binding}, но я думаю, что вы поняли):
<ComboBox ItemsSource="{Binding Path=SelectableItems}" SelectedItem="{Binding Path=SelectedItem1}" />
<ComboBox ItemsSource="{Binding Path=SelectedItem1.CanInclude}" SelectedItem="{Binding Path=SelectedItem2}"/>
<ComboBox ItemsSource="{Binding Path=SelectedItem1.CanInclude} + {Binding Path=SelectedItem2.CanInclude} - {Binding Path=SelectedItem1} - {Binding Path=SelectedItem2}" SelectedItem="{Binding Path=SelectedItem3}"/>
Но я хочу, чтобы это работало для не фиксированного количества записей.