效果图如上所示:
前端Xmal代码:
<Window x:Class="WpfTest.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfTest"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<Grid>
<StackPanel>
<Button Content="www.wikibt.com" Click="Button_Click"></Button>
<ComboBox ItemsSource="{Binding Items}" SelectedItem="{Binding CurrentItem}">
<ComboBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Image Source="/images/www.wikibt.com.png"></Image>//此处图片路径写死了,可以用绑定实现不一样的图片{Binding ItemImage}
<TextBlock Text="{Binding ItemName}" VerticalAlignment="Center" HorizontalAlignment="Center"></TextBlock>
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</StackPanel>
</Grid>
</Window>
后端代码:
using RevitTask;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace WpfTest
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
Items = new List<ImageItem>() {
new ImageItem("一",1),new ImageItem("二",2),new ImageItem("三",3)
};
this.DataContext = this;
}
public List<ImageItem> Items { get; set; }
public ImageItem CurrentItem { get; set; }
private void Button_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show(CurrentItem == null ? "null" : CurrentItem.ItemValue.ToString());
}
}
public class ImageItem
{
public ImageItem(string name, object value)
{
ItemName = name;
ItemValue = value;
}
public ImageItem(string name, object value, ImageSource img) : this(name, value)
{
ItemImage = img;
}
public string ItemName { get; set; }
public object ItemValue { get; set; }
public ImageSource ItemImage { get; set; }
}
}
PS.喜欢动漫的,可以关注下我的BT网站(下载动漫):维基BT www.wikibt.com