WPF ListView列图片加字符串显示,点击行数据更换列图片

WPF自定义控件ListView异步加载图片列表 通过改变ListView控件的ItemsControl.ItemContainerStyle样式可以实现各式各样的列表展示效果。如果后台读取文件夹图片资源后最后给ListView的ItemsSource赋值,可以在前台显示加载的图片列表,但是由于加载图片需要时间,会有一段空白停顿,并且要加载的图片越大停顿的时间越长。如下图所示: 这里的解决方案是首先异步加载图片地址,再异步读取图片资源的方式... 阅读详情

.xaml页面代码 

<Grid Loaded="Grid_Loaded">
        <ListView Height="315" HorizontalAlignment="Left" Margin="168,223,0,0" Name="listView_Demo" VerticalAlignment="Top" Width="738">
            <ListView.View>
                <GridView>
                    <GridViewColumn Header="序号" Width="150" DisplayMemberBinding="{Binding Num}"/>
                    <GridViewColumn Header="姓名" Width="200" DisplayMemberBinding="{Binding Name}"/>
                    <GridViewColumn Header="成绩" Width="150" >
                        <GridViewColumn.CellTemplate>
                            <DataTemplate>
                                <Grid Width="150">
                                    <Grid.ColumnDefinitions>
                                        <ColumnDefinition Width="*" />
                                        <ColumnDefinition Width="2*" />
                                    </Grid.ColumnDefinitions>
                                    <Image Height="18" Width="18" Name="imageName"  Source="pack://application:,,,/res/list_icon/DC_online.ico"/>
                                    <TextBlock Width="Auto" TextAlignment ="Center" Text="{Binding State}" Grid.ColumnSpan="2" />
                                </Grid>
                            </DataTemplate>
                        </GridViewColumn.CellTemplate>
                    </GridViewColumn>
                </GridView>
            </ListView.View>
        </ListView>
        <Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="935,275,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" />
    </Grid>

xaml后台代码

 public partial class VideoPage : Page
    {
        public VideoPage()
        {
            InitializeComponent();
        }
        class StudentInfo
        {
            public int Num { set; get; }
            public string Name { set; get; }
            public string State { set; get; }

            public StudentInfo(int num, string name, string state)
            {
                this.Num = num;
                this.Name = name;
                this.State = state;
            }
        }

        private void Grid_Loaded(object sender, RoutedEventArgs e)
        {
            listView_Demo.Items.Add(new StudentInfo(11, "小花", "在线"));
            listView_Demo.Items.Add(new StudentInfo(12, "小草", "在线"));
            listView_Demo.Items.Add(new StudentInfo(13, "小蚂蚁", "离线"));

            
        }
        private void button1_Click(object sender, RoutedEventArgs e)
        {

            ListViewItem myListBoxItem = (ListViewItem)listView_Demo.ItemContainerGenerator.ContainerFromItem(listView_Demo.SelectedItem);

            ContentPresenter contentpresenter = FindVisualChild<ContentPresenter>(myListBoxItem);

            DataTemplate MyDataTemplate = contentpresenter.ContentTemplate;

            Image myTextBlock = MyDataTemplate.FindName("imageName", contentpresenter) as Image;

            myTextBlock.Dispatcher.Invoke(new Action(() => { myTextBlock.Source = new BitmapImage(new Uri("pack://application:,,,/res/list_icon/DC_offline.ico")); }));
            if (myTextBlock != null)
            {

                MessageBox.Show(myTextBlock.Name);

            }
        }
        private childItem FindVisualChild<childItem>(DependencyObject obj) where childItem : DependencyObject
        {
            for (int i = 0; i < VisualTreeHelper.GetChildrenCount(obj); i++)
            {
                DependencyObject child = VisualTreeHelper.GetChild(obj, i);
                if (child != null && child is childItem)
                {
                    return (childItem)child;
                }
                else
                {
                    childItem childOfChild = FindVisualChild<childItem>(child);
                    if (childOfChild != null)
                    {
                        return childOfChild;
                    }
                }
            }
            return null;
        }

效果图如下:选中listview行,点击按钮切换图片

C#多语言房卡棋牌游戏大厅源码:WinForm架构与实战 在桌面客户端开发中,WinForm凭借高效布局与成熟生态,依旧是构建业务复杂型应用的可靠选择。多语言切换机制基于resx资源文件与CultureInfo实现,SignalR则提供了稳定的实时通信能力,确保房间创建、好友加入等状态实时推送。本文从工程分层出发,梳理了登录、房卡消耗、摄像头扩展、插件加载等核心模块的源码实现,并针对语言切换不刷新、SignalR断线重连、DLL加载异常等典型问题给出排查方案。无论你是C#中高级开发者,还是正在接手“大厅+子游戏”模式的项目,都能从中获得可落地的工程参考,避免重复踩 阅读详情

相关推荐

wpf 带头像的listbox实现

wpf中DataTemplate实现带图标的listbox,网上收集资料收集了很久,才实现类似QQ好友分组节点下好友形似的列表。

C# WPF ListView Bindding 图片

ListVIew 绑定图片 MainWIndow.xmal <GroupBox Grid.Column="1" Header="图片预览"> <Grid> <ListView ItemsSource="{Binding}" Name="LvImg"> <Lis...

godtoy的逆向小屋 2170

WPF ListView 漂亮样式

WPF ListView 漂亮样式,自己还可以根据自己的需求进行样式修改,表头、列表都可以根据注释进行拓展,很实用

WPF修改ListView单独一列来显示图片

例如,想修改某一行来显示图片 <ListView AlternationCount="2" x:Name="listView" Height="305" VerticalAlignment="Top" HorizontalAlignment="Left" Width="250" Margin="3,0,3,0" BorderThickness="0,0,0,0" BorderBrush="#...

贾教练的博客 1437

SAP PP模块 MRP配置实战:5步完成工厂级物料需求计划激活

本文详细介绍了SAP PP模块中物料需求计划(MRP)的工厂级配置实战,通过5个关键步骤从基础环境准备到最终激活。内容涵盖SPRO后台配置、MRP控制者定义、主数据设置及核心参数调整,帮助顾问快速掌握MRP配置清单的完整流程,确保物料需求计划的高效运行。

weixin_30431445的博客 342

tree_sitter多语言解析器配置实战指南

本文是一份详细的Tree-sitter多语言解析器配置实战指南。文章从零开始,手把手指导如何搭建Python环境、安装指定版本的tree-sitter库、下载并编译多种语言的语法规则,最终构建一个统一的解析器库。通过实战代码演示了如何初始化解析器、解析代码并遍历语法树,旨在帮助开发者高效处理多语言代码分析任务,并分享了高级技巧与常见问题排坑经验。

weixin_29245767的博客 267

WPF开发中FontAwesome字体图标的集成、封装与MVVM实践指南

在桌面应用开发领域,图标方案的选择直接影响着用户体验与开发效率。字体图标作为一种将矢量图形封装为字体的技术,其核心原理在于利用Unicode字符集映射图形,通过字体渲染引擎实现图标的显示与缩放。这项技术为开发者带来了矢量无损缩放、颜色灵活控制、资源体积小巧等显著技术价值,尤其适用于需要适配多种DPI和高分屏的桌面应用场景。在WPF框架中,字体图标与强大的样式、模板及数据绑定机制结合,能极大提升UI开发的一致性与可维护性。本文聚焦于行业广泛使用的FontAwesome图标库,深入探讨其在WPF项目中的两种核心

weixin_34288121的博客 419

微生物16S数据上传NCBI的SRA库

本篇内容仅包括:俺自己的实验收集了淡水、淡水沉积物、海水、海草附着微生物样品,测序所得的Fastq格式数据,在文章投稿发表时被要求数据需上传NCBI的SRA库,得到一个PRJNA2347899这样子的IDs。仅解决了这个上传过程!

Xf_Niu的博客 7435

AES文件夹加密系统:从算法原理到工程实现的完整指南

数据加密是信息安全领域的核心技术,通过数学算法将明文转换为不可读的密文,确保数据在存储和传输过程中的机密性。其核心原理基于对称加密与非对称加密两大体系,其中AES(高级加密标准)作为当前最主流的对称加密算法,以其高效性和安全性成为行业标准。在工程实践中,AES加密的价值在于为文件、通信和数据库等场景提供可靠的保护层。对于本地数据安全,文件夹透明加密是典型应用,它要求系统在底层自动完成加解密,对用户操作无感。实现这一目标需综合运用AES算法、密钥派生函数(如PBKDF2)和CBC等工作模式,并解决大文件流式处

weixin_30673611的博客 426

Bulk / Smart-seq2数据分析一般流程

Bulk RNA-seq(RNA-Seq of bulk samples)是一种RNA-Seq技术应用,它是通过将整个组织或细胞群体的RNA提取并混合,进行高通量测序来分析基因表达的技术。转录本定量结果可以用于后续的差异表达分析和聚类分析。功能注释和富集分析:对差异表达基因进行功能注释和富集分析,以帮助理解差异表达基因的功能和调控网络,从而获得对研究样品的更深入的理解。数据可视化:最后,将聚类分析的结果进行可视化,可以使用常见的数据可视化工具,如ggplot2、Plotly等,来帮助用户更好地理解数据。

weixin_54519672的博客 5350

AUTOSAR BswM配置实战:手把手教你用Vector Davinci Configurator搭建第一个模式管理规则

本文详细介绍了如何使用Vector Davinci Configurator工具配置AUTOSAR BswM模块,实现车身控制ECU的模式管理规则。通过实战案例,从环境准备、核心概念梳理到具体配置步骤,包括ModeRequestPort、ModeCondition、Logical Expression和Rules的构建,帮助工程师快速掌握BswM配置技巧,提升汽车电子软件开发效率。

weixin_28678831的博客 352

WPF入门教程系列二十——ListView示例(二)

Button HorizontalAlignment="Right" Name="btnRefresh" Height="22" VerticalAlignment="Top" Width="65" Click="btnRefresh_Click">刷新写完了上面的代码之后,按F5,程序运行了起来,点“刷新”按钮却没有任何数据显示。这个功能应该如何实现呢?1) 在原来只放一个按钮的地方,需要要多放一个按钮,如果只是简单的放一个按钮,就会如下图,所示,两个按钮重叠在一起。

Gefangenes的博客 631

RK3588在线更新系统内核的方法

《RK3588设备在线升级系统内核方法》 本文介绍了RK3588设备在线升级系统内核的简易方法。通过将新内核文件boot.img拷贝至目标主机后,使用dd命令配合关键参数(fsync确保写入磁盘、notrunc避免截断分区)进行安全更新,更新后需执行sync同步操作并重启生效。文章特别强调操作过程中断电风险,并扩展说明了Uboot的类似更新方法。该方法避免了现场设备拆卸的麻烦,为嵌入式系统维护提供了实用解决方案。

荻夜的博客 1047

WPF ListBox显示图片文字

Vs2015. net4.5.2 效果图============================================= 前台:============================================== <Window x:Class="WpfApplication7.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" x...

u014090257的博客 2008

Unity-TextMeshPro如何扩展材质实现字体Face+Outline流光效果

前言 TexeMeshPro 是Unity的一个Text文本插件,实现了比UGUI的Text,更好看的效果,跟高效的性能,所以深受大家的喜欢,但是再好的插件,也不是万能的,比如我们的策划有个新需求,要我们的VIP的名字比普通玩家有更好看的效果,例如:字体流光,外发光颜色扰动,字体贴图等等。那我们就需要去扩展TextMeshPRo的shader功能了。如下图所示 本文,我就带大家一起来扩展一下:如何扩展TextMeshProUGUI TextMesh原始面板 扩展功能后的面板 扩展TextMeshPro

TxNet 9675

《Autosar_BSW高阶配置》总目录_培训教程持续更新中...

目录 一、Autosar COM Module 二、Autosar BswM Module 三、Autosar EcuM Module 四、Autosar DCM Module 五、Autosar DEM Module 六、其它Module陆续推出 欢迎大家订阅《Autosar_BSW高阶配置》专栏(可以理解为是Autosar培训教程),该专栏每周至少更新一篇,一次订阅,不再二次收费,献上常用的案例和配置方法。下方整理了相关博文的链接(单击蓝色字体即可跳转),方便大家获取。 本专栏...

「汽车电子助手」的博客 4万+

【Android开发学习28】界面控件之列表控件(ListView)--显示字符数组

一、基础知识: ListView是一个经常用到的控件,ListView里面的每个子项Item可以使一个字符串,也可以是一个组合控件。先说说ListView的实现: 1.准备ListView要显示的数据; 2.使用一维或多维动态数组保存数据; 3.构建适配器,简单地来说,适配器就是Item数组,动态数组有多少元素就生成多少个Item; 4.把适配器添加到ListView,并显示出来。

天 下 4064

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

WPF中ListView的漂亮样式与自定义模板

写一个 ListView控件后,绑定上数据和设置好style即可。然后设置ItemTemplate模板,这里设置每一行具体的样式、布局等。接下来,我们看看前端XAML调用。上面是Template模板设置。

qq_37189288的博客 3761

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

WPF中加载高分辨率图片性能优化

在最近的项目中,遇到一个关于WPF中同时加载多张图片时,内存占用非常高的问题。 问题背景: 在一个ListView中同时加载多张图片,注意:我们需要加载的图片分辨率非常高。 代码: XAML: <Grid> <Grid.RowDefinitions> <RowDefinition Height="Aut...

weixin_34234721的博客 569

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

C# ListView加载图片,数据绑定和按钮

在学习此功能时,百度发现,关于这块说的都不是特别完善。特此记录一下提醒自己。界面代码 然后需要把图片列表绑定到前台,这需要新建一个类: 现在就开始绑定了:这块代码,我写在xaml文件对应的cs文件下。...

weixin_45526252的博客 1405

c# winform 悬浮窗的效果_.NET CORE(C#) WPF 值得推荐的动画菜单设计

微信公众号:Dotnet9,网站:Dotnet9,问题或建议:请网站留言, 如果对您有所帮助:欢迎赞赏。.NET CORE(C#) WPF 值得推荐的动画菜单设计阅读导航本文背景代码实现本文参考源码1. 本文背景YouTube上老外的一个设计,站长觉得不错,分享给大家作为参考,抽屉菜单的动画做的非常不错。运行起始界面:站长运行操作一遍,录制了动画大家看看:2. 代码实现使用 .NET CORE 3...

weixin_39796752的博客 1336

WPF基础五:UI④ 条目控件ListView

ListView 表示用于显示数据项列表的控件。 ListView为ItemsControl,这意味着它可以包含任何类型的对象的集合 (例如字符串、图像或面板) 。有关更多信息,请参见ItemsControl类。 ListView中数据项的显示是由属性指定的视图模式来定义的View。Windows Presentation Foundation (WPF) 提供了一个GridView视图模式,该模式将ListView数据项内容分区为多个列。及其相关类样式中的属性和方法,...

hd51cc的博客 1152

WPF中多幅图片的显示

只是想在WPF下编写一个简单的框架,能够显示文件夹中的图片。 由于想要显示不同类型的图片,就创建了一个TabControl,再在每一个TabItem里面添加了一个Image控件来显示图片。还加入了一些按钮用来控制上一张或者下一张图片的显示。

leo_wangsheng的专栏 4865

如何在listView中显示图片

如何在listView中显示图片1.初始化数据源,设置Adapter 2.定义adapter的内部类 3.布局文件xml

LIUCHANGSHUO的博客 628
上一篇: WPF 时钟,星期几 同步显示
下一篇: WPF 中listview右键编辑,删除,保存
CatchMe_439
博客等级 码龄10年 31粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值