Windows 8.1 ComboBox包装项目文本

时间:2014-11-05 16:01:53

标签: c# wpf windows xaml windows-8.1

我有一个非常长的字符串,它不会在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,它会渲染它们。

1 个答案:

答案 0 :(得分:1)

总结评论时,您无法看到自己的文字,因为您无法同时使用DisplayMemberPathItemTemplate。您应该从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>