各データグリッド行にコンボボックスを作成しました。以下のコードは、コンボボックスを作成するために使用されます。コンボボックスのSelectedItem値がwpfのviewmodelからの更新時に空になる
<ComboBox Width="166"
ItemTemplate="{StaticResource GridBinding}"
SelectedItem="{Binding Path=Car, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, IsAsync=True}"
SelectedValue="{Binding Path=Car, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, IsAsync=True}">
<ComboBox.GroupStyle>
<GroupStyle HeaderTemplate="{StaticResource GroupHeader}" />
</ComboBox.GroupStyle>
<ComboBox.Style>
<Style TargetType="ComboBox">
<Setter Property="ItemsSource" Value="{Binding Path=Cars}" />
<Style.Triggers>
<DataTrigger Binding="{Binding Path=IsSelected, RelativeSource={RelativeSource AncestorType=DataGridCell}}" Value="True">
<Setter Property="ItemsSource" Value="{Binding Path=DataContext.GroupedCars, RelativeSource={RelativeSource AncestorType=DataGrid}}" />
</DataTrigger>
</Style.Triggers>
</Style>
</ComboBox.Style>
</ComboBox>
コンボボックスに「のSelectedItemを」結合するための「車」プロパティは、「カー」などのID、名前、のようないくつかのプロパティを保持するクラスのオブジェクトであります
私が直面している問題は、 "Car"プロパティの値を更新し、そのセッターで "NotifyPropertyChanged"を呼び出すと、コンボボックスの "SelectedItem"の値が空白/空になります。
お勧めします。
SelectedItem ** OR ** SelectedValueの両方を使用する必要はありません。 – ibebbs
"SelectedItem"のみを使用すると、viewmodelから変更するとUIの値が更新されません。これは、「SelectedItem」が、参照を使用してitemourceの各項目に値を比較するためです。 –