WPF--ComboBox数据绑定

0-在ComboBox中显示图片:

<ComboBox Height="33" HorizontalAlignment="Right" Margin="0,94,31,0" x:Name="comboBox1" VerticalAlignment="Top" Width="142" SelectedIndex="0">
    <ComboBoxItem>
        <StackPanel Orientation="Horizontal">
            <Image Source="Images/roles.png" Height="30" />
            <TextBlock Text="Select a role" />
        </StackPanel>
    </ComboBoxItem>
    <ComboBoxItem Background="LightCoral">
        <StackPanel Orientation="Horizontal">
            <Image Source="Images/cashier.gif" Height="30" />
            <TextBlock Text="Cashier" />
        </StackPanel>
    </ComboBoxItem>
    <ComboBoxItem Background="LightGreen">
        <StackPanel Orientation="Horizontal">
            <Image Source="Images/manager.gif" Height="30" />
            <TextBlock Text="Manager" />
        </StackPanel>
    </ComboBoxItem>
</ComboBox>

一.XAML 中直接绑定(此绑定很不实用)

按 Ctrl+C 复制代码

按 Ctrl+C 复制代码

此绑定  不能设置 SelectValue 值 SelectedItem 返回的是 System.Windows.Controls.ComboBoxItem:上海

SelectedValue 返回的是 System.Windows.Controls.ComboBoxItem:上海

Text 返回的才是 显示的值。

如果想和Winform 中的获取 Value的值。可以 实用 Tag 属性。Tag为 Object 类型。可以获取Value值。

二。绑定IList<T>集合属性 (此绑定比较实用)

 public class City
{
public int ID { get; set; }
public string Name { get; set; }
}
 private void Window_Loaded(object sender, RoutedEventArgs e)
{
List<City> list = new List<City>();
list.Add(new City { ID = 1, Name = "上海" });
list.Add(new City { ID = 2, Name = "北京" });
list.Add(new City { ID =3, Name = "天津" });
cmb_list.ItemsSource = list; }
  <ComboBox Name="cmb_list" Grid.Row="1" Grid.Column="1" Height="23"
DisplayMemberPath="Name" SelectedValuePath="ID" SelectionChanged="cmb1_SelectionChanged"></ComboBox>

如果不设置 此 DisplayMemberPath="Name" 属性。  ComboBox 显示的是 City 类型名 (City没有覆盖ToString()方法)。如果City覆盖ToString()方法。将显示的是

ToString()方法返回的字符串信息。

注意:切记 要设置 DisplayMemberPath="Name" 属性

设置 SelectedValuePath="ID"属性。如果City覆盖了 ToString()方法。

SelectItem   ToString() 返回 City  ToString()返回的内容。

SelectValue ToString()  为 City 中ID的值。

三. 绑定DataTable

 private void Window_Loaded(object sender, RoutedEventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("ID", typeof(Int32)));
dt.Columns.Add(new DataColumn("Name", typeof(string))); DataRow dr1 = dt.NewRow();
dr1["ID"] = 1;
dr1["Name"] = "上海";
dt.Rows.Add(dr1);
dt.Rows.Add(2, "北京");
dt.Rows.Add(3,"天津"); cmb_list.ItemsSource =dt.DefaultView;
}
  <ComboBox Name="cmb_list" Grid.Row="1" Grid.Column="1" Height="23"
DisplayMemberPath="Name" SelectionChanged="cmb1_SelectionChanged"></ComboBox>

WPF--ComboBox数据绑定的更多相关文章

  1. WPF Combobox数据绑定 Binding

    combobox数据绑定List链表集合区分显示值与选择的值 整体效果: 根据combobox选择情况分别打印选取值与显示值 代码: Windows窗体: <Window x:Class=&qu ...

  2. WPF combobox数据绑定和数据获取

    本文章仅为个人学习,如有错误之处请指正. 搭建WPF界面的时候,想用combobox构建一个下拉菜单,搜索的时候看到大多数都是大段代码,逻辑顺序不是很详细,摸索了大概,记录一下方便来者. 拖入comb ...

  3. C# WinForm 中ComboBox数据绑定的问题 (转)

    来自:http://blog.sina.com.cn/s/blog_5fb9e26301013wga.html C# WinForm 中ComboBox数据绑定的问题 怎样让WinForm中的Comb ...

  4. combobox数据绑定

    jquery easyui datagrid 可编辑行 combobox数据绑定问题 将带有参数的url地址赋值给变量,然后将变量赋值给url <script type="text/j ...

  5. wpf Content数据绑定StringFormat起作用的原理和解决

    原文:wpf Content数据绑定StringFormat起作用的原理和解决 <Window x:Class="WpfOne.Bind.Bind6" xmlns=" ...

  6. WPF ComboBox(转)

    WPF ComboBox 创建一个ComboBox控件,并设置ComboBox控件的名称,高度,宽度.及设置ComboBox的垂直和水平对齐. <ComboBox Name="Comb ...

  7. WPF:数据绑定总结(1) https://segmentfault.com/a/1190000012981745

    WPF:数据绑定总结(1) visual-studio c# 1.3k 次阅读  ·  读完需要 16 分钟 0 一.概念:什么是数据绑定? WPF中的数据绑定:是在应用程序 UI 与业务逻辑之间建立 ...

  8. MVVM模式WPF的ComboBox数据绑定,使用Dictionary作为数据源

    ViewModel//属性定义 Dictionary<int, string> _selGroupList; /// <summary> /// 分组下拉列表 /// < ...

  9. wpf ComboBox设置默认值

    最新的wpf的ComboBox设置默认值得方法是,给VM中的数据集合第一个元素插入一个提示项目,比如:请选择一项,然后通过数据绑定可以实现默认选中第一项,下面我就贴一下示例代码: xaml页面: &l ...

  10. WPF的数据绑定详细介绍

    数据绑定:是应用程序 UI 与业务逻辑之间建立连接的过程. 如果绑定正确设置并且数据提供正确通知,则当数据的值发生更改时,绑定到数据的视觉元素会自动反映更改. 数据绑定可能还意味着如果视觉元素中数据的 ...

随机推荐

  1. 关于Team Leader

    他的生日3.16,结婚是在7月- 我感觉他领会整体架构方案的能力很强,几乎每次都能选择一个最优化的方案,比我这具体干活的想到更多更周全.但缺点是,不懂细活还是只能被下人拿捏.因为计算机环境那么复杂,每 ...

  2. C#面向对象——成员变量及封装

    namespace 面向对象5_22 { class Animal { private string _Type; public string Type { get { return _Type; } ...

  3. Selenium终极自动化测试环境搭建(二):Selenium+Eclipse+Python

    前面举例了Selenium+Eclipse+Junit+TestNG自动化测试环境的搭建,在前一篇的基础上,下面再举例Selenium+Eclipse+Python测试环境搭建. 第一步:安装Pyth ...

  4. Linux系统下使用crontab添加计划任务的方法

     在服务器中添加定期执行的任务,在很多情况下是非常必要的.比如,每天清理一次/tmp目录下的文件;没几分钟检查某一守护进程是否正常等等.这样计划任务就显得尤为方便.下面将介绍如何在Linux系统中 ...

  5. selenium webdriver(6)---cookie相关操作

    介绍selenium操作cookie之前,先简单介绍一下cookie的基础知识 cookie cookie一般用来识别用户身份和记录用户状态,存储在客户端电脑上.IE的cookie文件路径(win7) ...

  6. CUDA编程-(3)图形流水线时代

    图形流水线时代 图中所说的顶点,为多边型的角.GeForce系列设计图形流水型的目的就是渲染三角形的图元,这里指三角线图元的角.三角形图元越小,图片的质量就越好. 顶点控制的作用:从CPU中,接受参数 ...

  7. 使用DNSAgent拦截特定域名

    开发程序时,为方便测试,需要把本来发往abc.com的数据发到本地. 最简单的方法是直接在程序中修改,把abc.com修改为需要的地址. 但这样提交代码时,容易把调试地址给提交到服务器. 或是嵌入式设 ...

  8. map/reduce实现数据去重

    import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.co ...

  9. 问题-安装XP时,提示不识别SATA硬盘

    问题现象:笔记本装XP时,系统提示硬盘不能被识别? 问题描述:我原来是vista版本的,硬盘是SATA接口,但我觉得用vista不习惯,所以想装XP,可后来发现机器无法识别硬盘,该怎么解决? 问题原因 ...

  10. JAVA基础英语单词表(上)

    action                            / 'ækʃən /          动作,行为 active                           / 'ækti ...