2010-07-15 29 views
2

看怎麼奇怪的是以下情況:WPF4 DataGridComboBoxColumn不起作用

<DataGrid.Columns> 
    <!--Doesn't work--> 
    <DataGridComboBoxColumn 
    Header="Vendor" 
    ItemsSource="{Binding Vendors}" 
    SelectedItemBinding="{Binding Vendor, 
    UpdateSourceTrigger=PropertyChanged}" 
    DisplayMemberPath="Contact.Title"/> 

    <!--Works--> 
    <DataGridTemplateColumn Header="Vendor"> 
    <DataGridTemplateColumn.CellTemplate> 
     <DataTemplate> 
     <TextBlock DataContext="{Binding Vendor}" 
      Text="{Binding Contact.Title}"/> 
     </DataTemplate> 
    </DataGridTemplateColumn.CellTemplate> 
    <DataGridTemplateColumn.CellEditingTemplate> 
     <DataTemplate> 
     <ComboBox ItemsSource="{Binding Vendors}" 
      SelectedItem="{Binding Vendor, UpdateSourceTrigger=PropertyChanged}" 
      DisplayMemberPath="Contact.Title"/> 
     </DataTemplate> 
    </DataGridTemplateColumn.CellEditingTemplate> 
    </DataGridTemplateColumn> 
</DataGrid.Columns> 

回答

2

我貼了connection到的Microsft。

微軟向我解釋說,由於DataGridComboBoxColumn的ItemsSource屬性的常見用法是將其綁定到StaticResource或任何其他資源,對於每行都沒有不同,因此它將使用DataGrid進行一次評估,而不是每行評估一次,所以爲了單獨更新每一行的ItemsSource,一個DataGridTemplateColumn和一個內部組合框,這個ItemsSource在每行上綁定一個內部組合框。

+0

謝謝你一個很好的解釋!我無法理解頭腦中正在發生的事情......但是您的解決方案**確實有效**! – 2017-07-13 18:36:23