一個簡單的方法是把你的cooboboxitem信息放在一個包裝中把這些包裝的集合作爲你的組合框的itemssource。
public ObservableCollection<MyComboboxData> MyData { get; private set; }
public MyViewWithCombobox()
{
InitializeComponent();
this.MyData = new ObservableCollection<MyComboboxData>()
{
new MyComboboxData(){MyImagePath = "ImagePath/Image.bmp", MyText = "MyTextString"},
new MyComboboxData(){MyImagePath = "ImagePath/Image2.bmp", MyText = "MyTextString2"}
};
this.DataContext = this;
}
現在你可以簡單地綁定到所有你想要的東西:
<Grid>
<ComboBox Name="comboBox1" ItemsSource="{Binding MyData}">
<ComboBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Image Source="{Binding ImagePath}"/>
<TextBlock Text="{Binding MyText}"/>
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
<TextBlock Text="{Binding ElementName=comboBox1, Path=SelectedItem.MyText}"/>
</Grid>
PS:
public class MyComboboxData
{
public string MyImagePath { get; set; }
public string MyText { get; set; }
}
在你的代碼隱藏
看看MVVM與視圖模型,並結合這些任務很容易實現
謝謝,這很簡單,完美的作品,只是我想找的東西。我可以看到標籤在未來也會有用。 – DanBrum