WPF4 DataGridComboBoxColumn не работает - PullRequest
2 голосов
/ 15 июля 2010

Посмотрите, как странно следующий сценарий:

<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 Ответ

2 голосов
/ 22 июля 2010

Я разместил соединение с Microsft.

Microsoft объяснила мне, что, поскольку обычное использование свойства ItemsSource объекта DataGridComboBoxColumn заключается в его привязке к StaticResource или любому другому ресурсукоторый не отличается для каждой строки, он оценивается с помощью DataGrid один раз, а не для каждой строки, поэтому для обновления ItemsSource для каждой строки в отдельности, DataGridTemplateColumn и внутреннего ComboBox, который этот ItemsSource этого связывает для каждой строки.

...