2014-01-16 6 views
0

У меня есть ListView с видом DataView:Combo Box, Fixed Item Заголовок

<ListView Name="ListView_DataQuery" SelectionChanged="ListView_DataQuery_SelectionChanged"> 
    <ListView.View> 
     <GridView> 

      <GridViewColumn DisplayMemberBinding="{Binding ComputerName}"> 
       <ComboBox Name="Column1" Background="Transparent" BorderBrush="Transparent" MaxDropDownHeight="800" Text="Machine Name" 
          SelectedItem="{Binding Filter_ListView_DataQuery}" 
          AllowDrop="False" IsEditable="True" IsManipulationEnabled="False" IsReadOnly="True" Focusable="False" 
          ItemsSource="{Binding MachineNames}" ForceCursor="True"> 
       </ComboBox> 
      </GridViewColumn> 

Наручники все работает, им фильтрация и все выглядит достаточно хорошо. Проблема в том, что мне бы хотелось, чтобы выпадающие заголовки для всех моих столбцов, я массировал это поле со списком до состояния, где заголовок combobox отображает текст на нагрузке пользовательской формы. текст в этом поле не редактируется и не выбирается.

вопросов, которые у меня остались, о которых я не могу понять. Когда я наводил курсор на текст, он показывает курсор TextEdit «Я ищу один», а следующая проблема заключается в том, что при выборе элемента текст изменяется на выбранный элемент.

так что выпадающий список с фиксированным заголовком. Есть ли лучший способ сделать это? Кто-нибудь знает, как создать комбинированный блок с фиксированным заголовком?

+1

IsEditable = «True», и вы удивляетесь, почему вы получите Курсор TestEdit – Paparazzi

+0

Я не думаю, что вы читаете все. я хотел бы, чтобы список имел текст в заголовке столбца, когда вы нажимаете на столбец, появляется раскрывающийся список. когда пользователи нажимают на элемент в раскрывающемся списке. текст не меняется –

ответ

0

Так что я не получил ответа, но я понял это.

<Style TargetType="GridViewColumnHeader" > 
      <Setter Property="ContentTemplate"> 
       <Setter.Value> 
        <DataTemplate> 
         <DockPanel> 
          <Grid> 
           <ComboBox Background="Transparent" Foreground="Black" BorderBrush="Transparent" MaxDropDownHeight="8000" 
              Name="ComboBox_DataQuery_SelectedItem" 
              MinWidth="120" DockPanel.Dock="Right" HorizontalAlignment="Right" 
              SelectedItem="{Binding Filter_ListView_DataQuery}" 
              SelectedIndex="{Binding FilterIndex_ListView_DataQuery}" 
              Drop="ComboBox_GridView_Filter_DropDownClosed" 
              DropDownOpened="ComboBox_GridView_Filter_DropDownOpen" Uid="{Binding}" 
              /> 
           <Label Margin="0,0,20,0" DockPanel.Dock="Left" HorizontalContentAlignment="Right" 
             Background="Transparent" BorderBrush="Transparent" IsHitTestVisible="False" Focusable="False" 
             Content="{Binding}"/> 
          </Grid> 
         </DockPanel> 
        </DataTemplate> 
       </Setter.Value> 
      </Setter> 
     </Style> 



     <ListView DockPanel.Dock="Top" Name="ListView_DataQuery" ItemsSource="{Binding ListView_DataQuery}"> 
      <ListView.View> 
       <GridView> 

        <GridViewColumn x:Name="ComputerName" DisplayMemberBinding="{Binding ComputerName}" Header="Computer Name"></GridViewColumn> 
        <GridViewColumn x:Name="Name" DisplayMemberBinding="{Binding Name}" Header="Property Name"></GridViewColumn> 
        <GridViewColumn x:Name="Type" DisplayMemberBinding="{Binding Type}" Header="Property Type"></GridViewColumn> 
        <GridViewColumn x:Name="Value" DisplayMemberBinding="{Binding Value}" Header="Property Value"></GridViewColumn> 
        <GridViewColumn x:Name="Instance" DisplayMemberBinding="{Binding RelPath}" Header="Instance"></GridViewColumn> 

       </GridView> 
      </ListView.View> 
     </ListView> 

все, что не работало хорошо было, когда вы выбрали пункт для фильтрации, я просто должен был установить выбранный индекс в поле со списком обратно в -1