我有一个非常长的字符串,它不会在ComboBox项目的一行中提供。
如何制作包裹物品的文字?
我试过这个,但在Windows 8.1 unviseral App
中不起作用这是我的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,它会渲染它们。
答案 0 :(得分:1)
总结评论时,您无法看到自己的文字,因为您无法同时使用DisplayMemberPath
和ItemTemplate
。您应该从DisplayMemberPath="DisplayText"
移除ComboBox
并将其移至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>