У меня есть свойство списка под названием Fruits с некоторыми элементами внутри. Весь список привязан к Combobox, который отображает его. Я также создаю поле и свойство CurrentFruit для получения и установки SelectedItem и привязываю его к текстовому полю, чтобы увидеть обновление. Теперь я пытаюсь сделать что-то подобное для свойства UpdatedFruits, единственное, что отличается, - это то, что этот список зависит от SelectedItem из списка Fruits. То есть, когда я выбираю элемент из Combobox1, например, «Orange», а затем открываю Combobox2, в нем должна отображаться только строка «Apple». Я попытался удалить его непосредственно в получателе списка UpdatedFruits, но он снова отображает только весь список. Это может быть потому, что в конструкторе я присваиваю значение UpdatedFruits, равное Fruits.
xaml.cs
public class NewLUT_ViewModel : INotifyPropertyChanged
{
public ObservableCollection<string> Fruits { get; } = new ObservableCollection<string>()
{
"Orange",
"Apple",
"Banana"
};
public NewLUT_ViewModel()
{
UpdatedFruits = Fruits;
}
private string currentFruit;
public string CurrentFruit
{
get
{
return currentFruit;
}
set
{
currentFruit = value;
OnPropertyChanged();
}
}
private ObservableCollection<string> updatedFruits;
public ObservableCollection<string> UpdatedFruits
{
get
{
return updatedFruits;
}
set
{
Fruits.Remove(CurrentFruit);
updatedFruits = value;
OnPropertyChanged();
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged([CallerMemberName] string name = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
}
}
xaml
<ComboBox ItemsSource="{Binding Fruits}" SelectedItem="{Binding CurrentFruit}"/>
<ComboBox ItemsSource="{Binding UpdatedFruits}"/>
<TextBox Text="{Binding CurrentFruit}"></TextBox>