zoukankan      html  css  js  c++  java
  • 【WPF】Combox 下拉选项增加图片显示 ItemTemplate

     效果图如上所示:

    前端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

  • 相关阅读:
    一年来把自己从学.Net到用.Net,收集的资料共享出来B/s中的存储过程(二)
    收集的.Net文章(十五)ASP.NET 2.0 Caching For performance
    收集的.Net文章(十六)SQL Server日期计算
    P.V操作原语和信号量
    2004年2008年系分论文题目整理,考SA的可以看一下
    2010年个人总结
    MASM,NASM和AT&T汇编格式备注
    Unity Application Block 学习笔记之一使用配置文件
    Javascript 学习笔记之String类测试
    javascript学习笔记之Object类型测试
  • 原文地址:https://www.cnblogs.com/mqxs/p/13098635.html
Copyright © 2011-2022 走看看