В вашем коде я пропускаю несколько вещей
Во-первых, ваш класс не реализует INotifyPropertyChanged .Это означает, что если свойство изменяется на CommentData
, оно не сообщает измененному пользовательскому интерфейсу, поэтому пользовательский интерфейс не обновляется для отображения нового значения.
Во-вторых, вы сообщаете своему ComboBox
что есть свойство с именем Status
для каждого элемента, и используйте его как ComboBoxItem.Value
, однако это свойство не существует в StatusValue
.Измените его на UserStatus
, которое является допустимым свойством StatusValue
.
SelectedValuePath="UserStatus"
И, наконец, вам не следует заново создавать элементы ComboBox для каждого элемента.Вместо этого создайте коллекцию где-то еще выше в иерархии ViewModel или сделайте ее статическим ресурсом.
Например, если класс, который содержит вашу коллекцию CommentsData
, также содержит вашу коллекцию StatusValues
, вы можете использовать привязку RelativeSource
для привязки к ней следующим образом:
ItemsSource="{Binding
RelativeSource={RelativeSource AncestorType={x:Type DataGrid}},
Path=DataContext.UserValues}"