WPF4 DataGridComboBoxColumn不起作用

时间:2010-07-15 13:35:03

标签: wpf datagrid combobox .net-4.0 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>

1 个答案:

答案 0 :(得分:2)

我向Microsft发布了connection

微软向我解释说,由于DataGridComboBoxColumn的ItemsSource属性的常见用法是将它绑定到StaticResource或任何其他对每行没有不同的资源,所以使用DataGrid计算一次,而不是每行,所以为了分别更新每一行的ItemsSource,一个DataGridTemplateColumn和一个内部ComboBox,这一个的ItemsSource确实每行绑定。