問題:DataGridComboBox上的大多數代碼示例似乎都使用靜態資源作爲ItemsSource。在我的用例中,我想爲每個綁定對象提供不同的ItemsSources。 可以這樣做嗎?綁定WPF DataGridComboBox的ItemsSource列
背景:我試圖綁定問題類對象的WPF的DataGrid的收集,使用DataGridComboBoxColumn控制。答案字符串提供了SelectedValue。我希望AnswerDomain列表爲每個ComboBox提供ItemsSource。 AnswerDomain因問題而異。
類
public class Question
{
string Answer {get; set;}
List<string> AnswerDomain {get; set;}
//...other stuff
}
XAML
<DataGrid ItemsSource="{Binding Path=InspectionItems}" AutoGenerateColumns="False" Name="dataGrid1" >
<DataGrid.Columns>
<DataGridComboBoxColumn Header="Answer Domain"
DisplayMemberPath="Answer"
SelectedValuePath="Answer"
ItemsSource="{Binding Path=AnswerDomain}"
>
</DataGridComboBoxColumn>
</DataGrid.Columns>
</DataGrid>
問題:有幾個問題。現在的關鍵問題是每個DataGrid行中的組合框都不顯示AnswerDomain字符串。我嘗試了一系列XAML組合,但沒有成功。幫助我堆棧溢出。
更新:下面選定的解決方案工作。在進一步摸索之後,通過將UpdateSourceTrigger=PropertyChanged
添加到SelectedItem中,組合框中的用戶更改會反射回底層的自定義對象中。
<DataGridTemplateColumn Header="Answer">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox
ItemsSource="{Binding AnswerDomain}"
SelectedItem="{Binding Answer, UpdateSourceTrigger=PropertyChanged}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
這個答案解釋了爲什麼你不能綁定DataGridComboBoxColumn的動態綁定 - http://stackoverflow.com/a/5411157/158675 – Edward 2013-06-11 18:55:13