我試着將DataGridComboBoxColumn
更改爲DataGridTemplateColumn
,但沒有成功。WPF DataGrid組合框綁定
DataGridComboBoxColumn
按預期工作,但DataGridTemplateColumn
中的Combobox不是。如果我在此Combobox中更改了一個值,它將會更改所有可見行中的所有可見組合框的值。
我錯過了什麼?
數據網格是這樣的:
<DataGrid x:Name="bookDataGrid"
AutoGenerateColumns="False"
EnableRowVirtualization="True"
ItemsSource="{Binding Source={StaticResource bookViewSource}}">
的DataGridComboboxColumn
這樣的:
<DataGridComboBoxColumn x:Name="countryColumn"
ItemsSource="{Binding Source={StaticResource countryLookup}}"
DisplayMemberPath="CountryName"
SelectedValuePath="ID"
SelectedValueBinding="{Binding Country,UpdateSourceTrigger=PropertyChanged}"
Header="Country"
Width="SizeToCells" />
它用於設定國家(ID)在書籍表。我爲圖書(bookViewSource)和國家(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>
請幫助。謝謝。
已刪除,但...我得到了額外的問題:它也在改變可見行的數據庫。那就是:如果我選擇第一行的國家,它將更改數據庫中可見行的國家/地區! – Prodromos
您的Book實體類應該有一個Country屬性,該屬性包含本書當前選定屬性的ID。它是在您選擇數據庫中的項目時設置的此屬性。 – mm8
是的,這是正確的。它有一個Country屬性,它是從Combobox中選擇的ID。奇怪的是DataGridComboboxColumn工作正常。但是Tamplatecom不是! – Prodromos