2014-01-16 11 views
0

은 내가 DataView를보기와 목록보기에이 모든 작업, 메신저 필터링과 모든 것을 충분히 좋아 보인다 있습니다콤보 상자는 고정 항목 헤더

<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> 

바인딩. 문제는 내가 내 모든 열에 대한 헤더를 드롭 다운하고, 콤보 상자 헤더가 사용자 폼로드에 텍스트를 표시하는 상태로이 콤보 상자를 마사지했습니다. 이 상자의 텍스트는 편집하거나 선택할 수 없습니다.

문제 내가 알아낼 수없는 것을 남겨 두었습니다. 텍스트 위로 커서를 가져 가면 TextEdit 커서가 "나는 찾고 있습니다"다음 문제는 항목을 선택하면 선택한 항목으로 텍스트가 변경된다는 것입니다.

고정 헤더가있는 드롭 다운 목록입니다. 더 좋은 방법이 있나요? 고정 헤더가있는 콤보 상자를 만드는 방법을 아는 사람이 있습니까?

+1

IsEditable = "참"당신이 얻을 이유가 궁금 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> 

모든 didnt가 작업 잘했다, 난 그냥 다시 -1 콤보 상자의 선택된 인덱스를 설정했다