ComboBox及其ItemTemplate宽度问题

时间:2019-07-02 13:04:25

标签: wpf xaml

我有一个名为ModuleVariantList的ModuleVariant对象的集合。 ModuleVariant包含ModuleVariantNumber和VariantDescription之类的属性,此描述的长度可能为1000个字符。

在我的ComboBox(cmbVariant)中,应在单行中将值显示为ModuleVariantNumber-VariantDescription。 ComboBox的宽度是300,那么当我单击comboBox时,我的combobox项控件也希望显示相同的宽度和值作为相同的字符串格式。变体说明太长,因此我想在ComboBox及其项目控制面板中显示最多100个字符。如何实现呢?

我已经尝试使用下面的代码示例来处理字符串格式,但是在ConboBox ItemControlpanel中总是出现多行,而且它的宽度大于comboBox的宽度。如何解决这个问题。

<ComboBox x:Name="cmbVariant" Grid.Row="5" Grid.Column="1" Grid.ColumnSpan="2" Margin="0,10,0,0" ItemsSource="{Binding ModuleVariantList}" SelectedItem="{Binding SelectedModuleVariantItem}" HorizontalAlignment="Stretch">
                        <ComboBox.ItemTemplate>                            
                            <DataTemplate>
                                <TextBlock TextWrapping="NoWrap">
                                    <TextBlock.Text>
                                        <MultiBinding StringFormat="{}{0} - Desc: {1}">
                                            <Binding Path="ModuleVariantNumber"/>
                                            <Binding Path="VariantDescription"/>
                                        </MultiBinding>
                                    </TextBlock.Text>
                                </TextBlock>
                            </DataTemplate>
                        </ComboBox.ItemTemplate>
                        <ComboBox.ItemsPanel>
                            <ItemsPanelTemplate>
                                <VirtualizingStackPanel/>
                            </ItemsPanelTemplate>
                        </ComboBox.ItemsPanel>
                    </ComboBox>

0 个答案:

没有答案