easpc Ответов: 1

Что не так с этим групповым связыванием combobox?


У меня есть datagridtemplatecolumn с сгруппированным combobox на нем. Элементы отображаются правильно, но заголовки-нет, на самом деле появляется пустое пространство.

Я изменил поле заголовка, чтобы оно соответствовало отображаемым данным, и заголовок по-прежнему остается пустым. Есть ли другая привязка в headertemplate, чем в itemtemplate?

Combobox привязан к представлению listcollection с двумя полями: Bienes_ID и TipoBienes_ID с группировкой по TipoBienes_ID.

Основной элемент управления DataGrid привязывается к класс DataView с несколькими полями, в том числе Bienes_ID.



<DataGridTemplateColumn x:Name="ColumnaCombo">
                      <DataGridTemplateColumn.CellTemplate >
                          <DataTemplate >
                              <TextBlock Text="{Binding Path=Bienes_ID}"></TextBlock>
                          </DataTemplate>
                      </DataGridTemplateColumn.CellTemplate>
                      <DataGridTemplateColumn.CellEditingTemplate >
                          <DataTemplate >
                              <ComboBox x:Name="ComboBienesAgrupados"  SelectedValuePath="Bienes_ID" ItemsSource="{Binding Path=ListaBienes, RelativeSource={RelativeSource AncestorType=Window},UpdateSourceTrigger=PropertyChanged }" SelectedValue="{Binding Bienes_ID}"  >
                                  <ComboBox.GroupStyle >
                                      <GroupStyle>
                                          <GroupStyle.HeaderTemplate>
                                              <DataTemplate >
                                                  <TextBox   Text="{Binding  Path =Bienes_ID }" Background ="AliceBlue" ></TextBox>
                                              </DataTemplate>
                                          </GroupStyle.HeaderTemplate>
                                      </GroupStyle>
                                  </ComboBox.GroupStyle>
                                  <ComboBox.ItemTemplate >
                                      <DataTemplate >

                                          <TextBlock Text="{Binding Path=Bienes_ID}"></TextBlock>
                                      </DataTemplate>
                                  </ComboBox.ItemTemplate>
                              </ComboBox>
                          </DataTemplate>
                      </DataGridTemplateColumn.CellEditingTemplate>
                  </DataGridTemplateColumn>


Что я уже пробовал:

Мне удалось показать в itemtemplate поля TipoBienes_ID, так что только headertemplate не привязывается правильно.

1 Ответов

Рейтинг:
2

easpc

По-видимому, есть какой-то трюк, в заголовке я не привязываюсь к объекту данных из моего dataview. Вместо этого я привязываюсь к объекту PropertyGroupDescription. Поэтому вместо привязки к TipoBienes_ID мне пришлось привязаться к PropertyGroupDescription.назовите свойство вот так:

<combobox.groupstyle>
    <groupstyle>
          <groupstyle.headertemplate>
               <datatemplate>
                   <textbox text="{Binding  Path =Name}" background="AliceBlue"></textbox>
               </datatemplate>
          </groupstyle.headertemplate>
    </groupstyle>

</combobox.groupstyle>