我正在寻找ComboBox和ListView的混合体,我想知道为什么没有这样的东西,虽然我觉得这是一个很自然的愿望。
更详细: WPF ItemsControl应具有所有适用项的ItemsSource。 这些项具有多个属性,例如ID:int,Name:string和Description:string。 现在我的ItemControl应该:
关键是控件在没有鼠标的情况下完全可用,但如果用户不记得完美识别的ID但只记住某些描述或名称的一部分,则还提供一些“资源管理器”模式。 可配置的“搜索功能”会很好,如果你需要明确说明要包含在搜索或显示功能中的所有属性,那就不会有问题。
答案 0 :(得分:2)
到目前为止还没有这样的控制,但你当然可以轻松制作一个,
创建一个C#Custom Control并将控件模板定义为包含DataGrid / ListView的Expander。
您可以根据ListView的需要定义自定义控件的依赖项属性,并为它们执行模板绑定。扩展器的标题应绑定到所选项目的文本或对象的某种文本表示。
替代:
在项目模板中添加GRID并定义其列定义。您可以轻松地在GRID中指定多列值。
<ComboBox>
<ComboBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100"/>
<ColumnDefinition Width="200"/>
<ColumnDefinition Width="100"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="{Binding CustomerName}"/>
<TextBlock Grid.Column="1" Text="{Binding CustomerEmail}"/>
<TextBlock Grid.Column="2" Text="{Binding CustomerPhone}"/>
</Grid>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
通过正确应用宽度并为文本块添加边距,您可以创建多列列表以便轻松显示。不要忘记TextSearch.SearchPath属性,以便能够通过键盘选择项目。