У меня есть коллекция предметов, скажем:
class Myclass : INotifyPropertyChanged
{
public bool Selected { get; set; }
public string ChosenValue { get; set; }
}
У меня есть наблюдаемая коллекция этого класса:
public ObservableCollection<Myclass> _myObColl
Наконец, у меня есть список, связанный с_myObColl
и отдельный выпадающий список, связанный с другой коллекцией.
Я хочу обновить поле со списком, чтобы обновить свойство ChosenValue всех элементов в списке _myObColl
.Но я не могу понять, как.
Выбранный элемент поля со списком привязан к свойству в модели представления, называемому currselection.Что я хочу сделать, это связать свойство ChosenValue Myclass со значением currselection.Но как мне это сделать?Возможно, мне не следует думать о связывании, но я не могу придумать другой способ обновления свойства ChosenValue элементов.Я попытался SelectionChanged
событие комбо, чтобы пройти через _myObColl
.Это работает, за исключением случаев, когда элемент помечен как выбранный после изменения комбинированного списка.
<ComboBox ItemsSource="{Binding Path=DataContext.lstComboList , ElementName=PS4}" SelectedItem="{Binding Path=currselection, Mode=TwoWay}" Margin="10,10,10,10" Width="100"/>
<ListBox ItemsSource="{Binding _myObColl}" Margin="10,10,0,0" >
<ListBox.ItemTemplate x:Uid="asdasd" >
<DataTemplate>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<CheckBox Grid.Column ="3" Width="50" VerticalAlignment="Center" Margin="10" IsChecked="{Binding Path=PropA, Mode=TwoWay}"/>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>