Windows 8.1组合框换行项目文本
本文关键字:换行 项目 文本 组合 Windows | 更新日期: 2023-09-27 18:29:11
我有一个非常长的字符串,它不包含在ComboBox项的一行中。
如何使其包裹项目的文本?
我尝试过这个,但在Windows 8.1非自愿应用中不起作用
这是我的comboBox
<ComboBox x:Name="ChildrenAgePickerComboBox_0" Style="{StaticResource ComboBoxWrappable}" ItemsSource="{Binding ChildrenAgeOptions}" DisplayMemberPath="DisplayText" />
这是我想应用的样式,以便包装文本
<Style x:Key="ComboBoxWrappable" TargetType="ComboBox" BasedOn="{StaticResource ComboBoxBase}">
<Setter Property="ItemTemplate">
<Setter.Value>
<DataTemplate>
<TextBlock TextWrapping="Wrap" MinWidth="200" Text="{Binding}"/>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
结果是,我的组合框根本没有文本,当我打开它时也没有显示任何项目
DataTemplate有什么问题?它不会渲染项目。如果我不使用DataTemplate,它确实会渲染它们。
为了总结注释,您没有看到您的文本,因为您不能同时使用DisplayMemberPath
和ItemTemplate
。您应该做的是从ComboBox
中删除DisplayMemberPath="DisplayText"
,并将其移动到Text
绑定中
<Style x:Key="ComboBoxWrappable" TargetType="ComboBox" BasedOn="{StaticResource ComboBoxBase}">
<Setter Property="ItemTemplate">
<Setter.Value>
<DataTemplate>
<TextBlock TextWrapping="Wrap" Text="{Binding DisplayText}"/>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>