ListBox之类控件的Item项显示对象的两个属性
2015-03-29 17:24
309 查看
wpf项目中,ListBox绑定对象集合,ListBoxItem要显示对象的两个属性,例如:显示员工的工号和姓名。
之前我的做法是在Employee员工类中添加一个"NumAndName",属性,给员工对象的工号属性赋值、姓名属性赋值时,同时给“NumAndName”属性
赋值为“工号”+“姓名”两个属性拼接的字符串,ListBox绑定员工的集合,ListBox的Item绑定"NumAndName"属性,这样就同时显示了工号和姓名。
今天,发现了一个简单的方法,即:在Employee类中重载ToString()方法,核心代码如下:
下面是demo的完整代码:
XAML:
View Code
运行效果:
选中ListBox的某项后,按"Show"按钮,Show出春丽的工号、姓名、性别:
之前我的做法是在Employee员工类中添加一个"NumAndName",属性,给员工对象的工号属性赋值、姓名属性赋值时,同时给“NumAndName”属性
赋值为“工号”+“姓名”两个属性拼接的字符串,ListBox绑定员工的集合,ListBox的Item绑定"NumAndName"属性,这样就同时显示了工号和姓名。
今天,发现了一个简单的方法,即:在Employee类中重载ToString()方法,核心代码如下:
public class Employee { /// <summary> /// 重载ToString()方法 /// </summary> /// <returns></returns> public override string ToString() { return this.Num+" "+this.Name; } //……
下面是demo的完整代码:
XAML:
using System; using System.Collections.Generic; using System.Linq; using System.Text; 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 WpfApplication1 { /// <summary> /// MainWindow.xaml 的交互逻辑 /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); List<Employee> list = new List<Employee> { new Employee{Num=9527,Name="张三",Sex="男"}, new Employee{Num=1086,Name="春丽",Sex="女"}, new Employee{Num=1001,Name="王五",Sex="男"} }; lbx.ItemsSource = list; } /// <summary> /// Show出lbx的选中项 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Button_Click(object sender, RoutedEventArgs e) { if (lbx.SelectedIndex > -1) { Employee employee = lbx.SelectedItem as Employee; string msg = string.Format("工号:{0},\n姓名:{1},\n性别:{2}", employee.Num, employee.Name, employee.Sex); MessageBox.Show(msg); } else { MessageBox.Show("未选中任何项!"); } } } public class Employee { /// <summary> /// 重载ToString()方法 /// </summary> /// <returns></returns> public override string ToString() { return this.Num+" "+this.Name; } private string name; /// <summary> /// 姓名 /// </summary> public string Name { get { return name; } set { name = value; } } private int num; /// <summary> /// 工号 /// </summary> public int Num { get { return num; } set { num = value; } } private string sex; /// <summary> /// 性别 /// </summary> public string Sex { get { return sex; } set { sex = value; } } } }
View Code
运行效果:
选中ListBox的某项后,按"Show"按钮,Show出春丽的工号、姓名、性别:
相关文章推荐
- CComboBox控件的下拉列表框,用鼠标在该ListBox上滑动的时候显示出当前具有focus的item项的索引
- CComboBox控件的下拉列表框,用鼠标在该ListBox上滑动的时候显示出当前具有focus的item项的索引
- 创建两个 DataTable 对象和一个 DataRelation 对象,并将这些新对象添加到 DataSet 中。这些表随后会显示在 DataGridView 控件中
- 浅谈ListBox控件,将对象封装在listBox中,在ListBox中显示对象中某个属性,在ListBox中移除和移动信息
- 解决WinForm中ComboBox控件的“设置"DataSourse”属性后无法修改项集合”以及两个不相关联的ComboxBox控件实现数据列表显示不可实现的问题
- PropertyGrid控件扩展--自定义显示属性内容、属性名称及分类
- 给所有的Control加两个属性,实现回车键自动跳转到下一个控件
- 使用CLASS属性或CSSCLASS属性来定义文本或控件显示的样式表
- 模拟了个FoxMail的账号属性设置 TZListBox 控件
- 基础知识提问:关于HashTable和List两个容器Add改变了属性的同一对象的问题
- ReportView 如何实现按页码控制报表对象的显示属性
- asp.net 包含动态创建控件的容器如果要切换显示/隐藏不要用 Visible 属性
- ASP.Net控件模板中根据绑定对象的属性控制元素隐现技巧
- 如何将Struts2的doubleselect 的两个select 控件横排显示
- asp.net 中数据验证控件的两个属性TEXT与ErrorMessage区别
- Flex中如何利用rowCount属性,使List控件Resize时特定的行被显示
- 模拟了个FoxMail的账号属性设置 TZListBox 控件
- VCL(四) 如何写出象TTable, TAdoTable ,Tquery,TAdoQuery 等控件一样的自动下拉显示Field属性(转)
- ASP.NET 2.0 及其以后的版本中 CheckBox 控件的两个新属性
- struts bean:write 显示对象中的对象的属性