2011-10-24 91 views
0

所以,我在它的數據組合框和它的作品,他們希望如何:更改數據的組合框在WPF

<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下拉而不改變架構?我無法更改列表本身,因爲在地圖的其他區域,它只是沒有索引的SampleName。謝謝。

回答

1

如果您ItemsSource是一個複雜的類型:

public class MyClass 
{ 
    public int Index { get; set; } 
    public string Name { get; set; } 
} 

然後使用ComboBoxDisplayMemberPath屬性來控制什麼得到顯示。在這種情況下,您需要添加:

DisplayMemberPath="SampleName" 

ComboBox的定義。

相反,如果你想同時顯示的索引和名稱,那麼你就需要定義一個ItemTemplate組合框:

<ComboBox ....> 
    <ComboBox.ItemTemplate> 
    <DataTemplate> 
     <StackPanel Orientation="Horizontal"> 
     <TextBlock Text="{Binding Index}" /> 
     <TextBlock Text=" : " /> 
     <TextBlock Text="{Binding Name}" /> 
     </StackPanel> 
    </DataTemplate> 
    </ComboBox.ItemTemplate> 
</ComboBox> 
+0

我可以改變的DisplayMemberPath在飛行中有一個與它,以及相關的指標? –

+0

@JW - 你想顯示索引嗎?你的問題並不清楚。 – ChrisF