在WPF中获Listview中选中的项,与WinForm里面有着很大的区别,要亲身去研究一下在WPF中如果处理,其实也不难,来,下面我们一起来通过一个简单的示例来感悟一下吧。

第一步就是建立一个WPF应用程序项目,这个不用描述了,节省了31个字。

第二步,为了实现数据绑定,先写一个简单的员工类,包含三个属性——姓名、年龄、城市。

  1. public class Emp
  2. {
  3. public string Name { get; set; }
  4. public int Age { get; set; }
  5. public string City { get; set; }
  6. }

第三步,写前台XAML,布局窗体和ListView。

  1. <Grid>
  2. <ListView x:Name="lv" SelectionChanged="lv_SelectionChanged">
  3. <ListView.View>
  4. <GridView AllowsColumnReorder="True">
  5. <GridViewColumn DisplayMemberBinding="{Binding Path=Name}" Header="姓名"
  6. Width="65"/>
  7. <GridViewColumn DisplayMemberBinding="{Binding Path=Age}" Header="年龄"
  8. Width="65"/>
  9. <GridViewColumn DisplayMemberBinding="{Binding Path=City}" Header="所在城市"
  10. Width="70"/>
  11. </GridView>
  12. </ListView.View>
  13. </ListView>
  14. </Grid>

第四步,在窗体的loaded事件中绑定数据。

  1. private void Window_Loaded(object sender, RoutedEventArgs e)
  2. {
  3. lv.ItemsSource = new Emp[]{
  4. new Emp{Name="小明",Age=16,City="北京"},
  5. new Emp {Name="小红",Age=20, City="天津"},
  6. new Emp{ Name="小环", Age=21, City="杭州" },
  7. new Emp { Name="小高", Age=23, City="东莞" }
  8. };
  9. }

第五步,我们要知道,ListView的选定项是什么类型的。

  1. private void lv_SelectionChanged(object sender, SelectionChangedEventArgs e)
  2. {
  3. MessageBox.Show(lv.SelectedItem.GetType().ToString());
  4. }

第六步,这回爽歪歪了,原来Listview选定的项类型就是我们给它绑定的类型,也就是说,如果我们把A类绑定到控件,选定项就是一个A类的实例。

  1. private void lv_SelectionChanged(object sender, SelectionChangedEventArgs e)
  2. {
  3. Emp emp = lv.SelectedItem as Emp;
  4. if (emp != null && emp is Emp)
  5. {
  6. MessageBox.Show("员工姓名:" + emp.Name +
  7. "\n\n" + "员工年龄:" + emp.Age.ToString() + "\n\n" +
  8. "城市:" + emp.City);
  9. }
  10. }

继续聊WPF——如何获取ListView中选中的项的更多相关文章

  1. C# 获取listview中选中一行的值

    首先必须要判断listView1.SelectedItems.Count>0或是listview1.SelectedIndices.Count>0,否则第一次点击会选不中.其次,好像ite ...

  2. C#+ArcGIS Engine 获取地图中选中的要素

    转自 C#+ArcGIS Engine 获取地图中选中的要素 C#+ArcGIS Engine 获取地图中选中的要素 提供一种简单遍历获取地图中选中要素的方法,代码如下: List<IFeatu ...

  3. 用WPF实现在ListView中的鼠标悬停Tooltip显示

    原文:用WPF实现在ListView中的鼠标悬停Tooltip显示 一.具体需求描述 在WPF下实现,当鼠标悬停在ListView中的某一元素的时候能弹出一个ToolTip以显示需要的信息. 二.代码 ...

  4. Vue. 之 Element获取table中选中的行

    Vue. 之 Element获取table中选中的行 问题描述: 如下截图,在Table中选择数据后,然后在点击“统计”按钮,获取Table表中选择的行 解决方案: 1. 给“统计”这个按钮添加一个点 ...

  5. Android ListView中 每一项都有不同的布局

    实现代码 Adapter的代码 其中:ViewHolder分别是三个不同的布局,也就是ListView中每一项的布局 TYPE_1...是三种类型. 在使用不同布局的时候,getItemViewTyp ...

  6. WPF之让ListView中的CheckBox居中显示

    第一步:在资源中定义一个居中的样式: <Window.Resources> <Style x:Key="ListViewItemStyle" TargetType ...

  7. c#中如何获取listbox中选中值的问题

    StringBuilder ConponPerson = new StringBuilder();            for (int i = 0; i < lb_tzs.Items.Cou ...

  8. 怎么获取textarea中选中文字

    textarea设置select="saveSelectionText()" //保存选中内容 saveSelectionText: function () { var focus ...

  9. 使用window.getSelection()获取div中选中文字内容及位置

    div添加一个弹出事件: $(document).ready(function () { $("#marked-area").mouseup(function (e) { $sco ...

随机推荐

  1. http自己定义超时检測方法、主动抛出异常

    上次为了解决无网路由器超时的问题,将问题重心转移到了HttpClient. HttpUrLConnection上面,什么各种设置ReadTimeout. connectionTimeOut,还有所谓的 ...

  2. 【Git笔记】怎样在同主机同账户下实现多个gitlab帐号管理各自的remote repo

    我们可能会遇到以下的场景: 1)多人共用同一台Linux开发机,该开发机仅仅有一个共用的work帐号,非常多人都用这个帐号登录主机进行日常开发. 2)该work帐号下统一安装了gitclient供多人 ...

  3. 欣喜若狂!今天最终成功把音频导入到iphone了,大半年的努力,靠的毅力和方法

    研究IOS 的助手也有大半年时间了,一直没有实现导入音视频文件的功能,主要是过程太复杂,而且基本上没有资料能够查询.经过不懈的努力,今天最终成功导入了一个mp3 文件到ipod,一切功能正常,期间经历 ...

  4. mongoDB学习笔记——存取图片(C#)

    作为一个NoSql数据库的代表,存取多媒体数据,应该是强项吧?那么,图片在mongoDB里是如何存取的呢?(其实,关系型数据库存取图片也一点问题没有,所以我看NoSql的强项不在于是否存储多媒体,而在 ...

  5. 海思3518e mpp2/sample/venc makefile简析

    http://blog.csdn.net/u011003120/article/details/51324567

  6. Android系统Recovery工作原理之使用update.zip升级过程分析(七)---Recovery服务的核心install_package函数【转】

    本文转载自:http://blog.csdn.net/mu0206mu/article/details/7465514 一.       Recovery服务的核心install_package(升级 ...

  7. 利用安卓手机搭建WEB服务器

    背景介绍 Android是一种基于Linux的自由及开放源代码的操作系统 所以是用安卓来搭建服务器是完全可行的.接下来将教大家如何利用AndroPHP和Feel FTP(或者其他FTP管理器)来在安卓 ...

  8. NOI 2009A 诗人小G

    NOI 2009A 诗人小G 诗人小G [问题描述] 小G是一个出色的诗人,经常作诗自娱自乐.但是,他一直被一件事情所困扰,那就是诗的排版问题. 一首诗包含了若干个句子,对于一些连续的短句,可以将它们 ...

  9. Codeforces--630K--Indivisibility(容斥)

     K - Indivisibility Crawling in process... Crawling failed Time Limit:500MS     Memory Limit:65536 ...

  10. 自适应阈值分割—大津法(OTSU算法)C++实现

    大津法是一种图像灰度自适应的阈值分割算法,是1979年由日本学者大津提出,并由他的名字命名的.大津法按照图像上灰度值的分布,将图像分成背景和前景两部分看待,前景就是我们要按照阈值分割出来的部分.背景和 ...