DataGridComboBoxColumn
をDataGridTemplateColumn
に変更しようとしましたが、成功しませんでした。予想通りWPF DataGrid Combobox Binding
DataGridComboBoxColumn
は機能していますが、DataGridTemplateColumn
でのコンボボックスではありません。私は、このコンボボックスで値を変更した場合、それはすべての見える行のすべての見えるコンボボックスの値を変更します。
私は、私は何が欠けていますか?本表に国(ID)を設定するために使用され
<DataGridComboBoxColumn x:Name="countryColumn"
ItemsSource="{Binding Source={StaticResource countryLookup}}"
DisplayMemberPath="CountryName"
SelectedValuePath="ID"
SelectedValueBinding="{Binding Country,UpdateSourceTrigger=PropertyChanged}"
Header="Country"
Width="SizeToCells" />
:このような
<DataGrid x:Name="bookDataGrid"
AutoGenerateColumns="False"
EnableRowVirtualization="True"
ItemsSource="{Binding Source={StaticResource bookViewSource}}">
DataGridComboboxColumn
:
DataGridがこのようなものです。 Books(bookViewSource)とCountry(countryLookup)にはCollectionViewSource
を使用します。
このようなDataGridTemplateColumn
を働いていない:
<DataGridTemplateColumn x:Name="CountryTemplateColumn">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel>
<ComboBox x:Name="CountryCombo"
ItemsSource="{Binding Source={StaticResource countryLookup}}"
DisplayMemberPath="CountryName"
SelectedValuePath="ID"
SelectedValue="{Binding Country, Source={StaticResource bookViewSource}, UpdateSourceTrigger=PropertyChanged}">
</ComboBox>
</StackPanel>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
助けてください。ありがとう。
削除されました。追加の問題が発生しました。表示されている行のデータベースも変更されています。つまり、1行目の国を選択すると、データベースの表示されている行の国が変更されます。 – Prodromos
Bookエンティティクラスには、ブックの現在選択されているプロパティのIDを保持するCountryプロパティが設定されています。このプロパティは、データベース内の項目を選択するときに設定されます。 – mm8
はい、正しいです。これは、コンボボックスから選択されたIDであるCountryプロパティを持ちます。奇妙なのは、DataGridComboboxColumnが正常に動作しているということです。しかし、Tamplatecomumnはそうではありません! – Prodromos