所以我有一个包含数据的ComboBox,它的工作方式如下:
<ComboBox Grid.Column="1" x:Name="MyComboBox" Margin="2, 0, 2, 0"
ItemsSource="{Binding Path=MySamples}" DisplayMemberPath="SampleName" SelectedValue="{Binding Path=MySample}"
SelectionChanged="OnComboBoxChanged" FontSize="11" FontFamily="Arial"/>
但是,现在他们希望将ItemsSource编入索引。所以它应该是这样的:
some #: SampleName
是否有一种简单的方法可以在不改变体系结构的情况下为ComboBox下拉进行此更改?我无法更改List本身,因为在地图的其他区域,它只是没有索引的SampleName。感谢。
答案 0 :(得分:1)
如果您的ItemsSource
是复杂类型:
public class MyClass
{
public int Index { get; set; }
public string Name { get; set; }
}
然后使用ComboBox
的{{3}}属性来控制显示的内容。在这种情况下,您需要添加:
DisplayMemberPath="SampleName"
到ComboBox
定义。
如果你想显示索引和名称,那么你需要为ComboBox定义一个ItemTemplate:
<ComboBox ....>
<ComboBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Index}" />
<TextBlock Text=" : " />
<TextBlock Text="{Binding Name}" />
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>