zoukankan      html  css  js  c++  java
  • Visual C# 2005中让ComboBox控件显示出多个数据源属

    之前,我们在“如何使用简单绑定来显示多个数据源属性”一节中就曾经提到过,简单绑定并不直接支持数据源属性串连。同样,ComboBox控件也不直接支持数据源属性串连。也就是说,在默认状态下,ComboBox控件只能绑定至数据源的某单一属性,而不能绑定至属性串联后的结果。虽然不能直接做到,但是却可以间接做到,解决的方法就是利用ComboBox控件的Format属性来串联多个数据源属性。

    程序范例1

    图 3-44

    图3-44所示的是程序范例CH3_DemoForm028.cs的执行画面,其中ComboBox控件最特殊的地方就是,同时显示出源数据表的多个字段内容并加以格式化。基本上,在绑定操作方面,我们只分别将ComboBox控件的ValueMember与DataSource属性设置成“员工号码”字段与“章立民工作室”数据表。

    private void CH3_DemoForm028_Load(object sender, EventArgs e)
    {
    // 调用 LoadDataToDataSet() 函数来连接至数据源并返回所需的 DataSet 对象。
    DataSet myDataSet = LoadDataToDataSet();
    if (myDataSet != null)
    {
    ComboBox1.ValueMember = "员工号码";
    // 设置下拉列表框 ComboBox1 的数据源。
    ComboBox1.DataSource = myDataSet.Tables["章立民工作室"];
    }
    }

    ComboBox的每一个选项之所以会含有数个字段的格式化后的合并结果,其关键就在于我们为ComboBox控件的Format事件处理函数编写了下列程序代码。

    private void ComboBox1_Format(object sender, ListControlConvertEventArgs e)
    {
    DataRowView myDataRowView = (DataRowView)(e.ListItem);
    if (myDataRowView != null)
    {
    e.Value =
    String.Format("{0} - {1} - {2:yyyy/MM/dd} - {3:NT$#,##000}",
    myDataRowView["姓名"],
    myDataRowView["性别"],
    myDataRowView["出生日期"],
    myDataRowView["目前薪资"]);
    }
    }

    程序范例2

    图 3-45

    图 3-45所示的是程序范例CH3_DemoForm029.cs的执行画面,其中ComboBox控件最特殊的地方,就是同时显示出多个数据源属性。基本上,在绑定操作方面,我们只分别设置了ComboBox控件的ValueMember与DataSource属性。

    private void CH3_DemoForm029_Load(object sender, EventArgs e)
    {
    this.culturesCB.ValueMember = "LCID";
    this.culturesCB.DataSource =
    CultureInfo.GetCultures(CultureTypes.FrameworkCultures);
    }

    ComboBox的每一个选项之所以会含有其他两个属性的值,其关键就在于我们为ComboBox控件的Format事件处理函数编写了下列程序代码。

    private void culturesCB_Format(object sender, ListControlConvertEventArgs e)
    {
    CultureInfo ci = (CultureInfo)(e.ListItem);
    if (ci != null)
    {
    e.Value = String.Format("{0} : {1}", ci.IetfLanguageTag, ci.DisplayName);
    }
    }

    -
  • 相关阅读:
    osgEarth学习
    《C++ Primer》 第12章 类
    C++中 指针与引用的区别
    C++ primer笔记第15章 面向对象编程
    Pandas数据去重和对重复数据分类、求和,得到未重复和重复(求和后)的数据
    Python转页爬取某铝业网站上的数据
    使用Nginx+Tomcat实现分离部署
    使用icomoon字体图标详解
    如何配置PetShop网站
    nopcommerce开源框架技术总结如何实现把controller中的Model的数据传入VIEW中,并生产相应的Html代码
  • 原文地址:https://www.cnblogs.com/goto/p/2893031.html
Copyright © 2011-2022 走看看