我有一个包含数据视图视图的列表视图:
<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>
绑定都在工作,即时过滤,一切看起来都不错。 问题是,我想下拉所有列的标题,我已经按下这个组合框到状态,组合框标题在userform load上显示一个文本。此框中的文字不可编辑或可选择。
我遗留下来的问题似乎无法弄明白。 当我将光标放在文本上时,它会显示TextEdit光标“我在找一个”,下一个问题是,当您选择一个项目时,文本会更改为所选项目。
所以带有固定标题的下拉列表。 有一个更好的方法吗? 有谁知道如何制作一个带有固定标题的组合框?
答案 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