WPF——Grid后台代码

本文介绍了如何在WPF中使用Entity Framework从数据库读取数据,并显示在DataGrid上,特别是处理DataGridComboBoxColumn的绑定和显示问题。通过设置AutoGenerateColumns为False,解决自动列生成,并探讨了DataGridComboBoxColumn的数据源要求,包括StaticResource、x:Static和ComboBoxItem类型的内联集合。在解决过程中,展示了前后台代码的修改过程,最终实现正确显示所需内容。
摘要由CSDN通过智能技术生成
  1. 通过Entity Framework 6.1 从数据库(本地数据库(local)/Test中的S_City表中读取城市信息数据,从S_ Province表中读取省份信息,然后通过绑定的方式反数据显示到WPF的Window上的一个DataGrid上。具体代码如下。

    在这里插入图片描述
    在这里插入图片描述

  2. 写完了上面的代码之后,按F5,程序运行了起来,点“刷新”。你会看到如下结果。如下图的结果。
    在这里插入图片描述

  3. DataGrid自动生成了一些列,而实际上我们是不需要这些自动生成列的。所以需要把AutoGenerateColumns设为False。再执行第2步。就会看到如下的结果。
    在这里插入图片描述

  4. 虽然实现了下拉框的内容显示,但是却存在一个问题,继不显示应该显示的内容。最后查询网络之后才知道,应许做如下修改。
    DataGrid的ComboBox列的绑定方式
      DataGridComboBoxColumn对数据源有下面的要求:
    使用下列选项之一,若要填充下拉列表,首先设置 ComboBox 的 ItemsSource 属性:
    1、静态资源。有关更多信息,请参见 StaticResource 标记扩展。
    2、x: 静态代码实体。有关更多信息,请参见 x:Static 标记扩展。
    3、ComboBoxItem 类型的内联集合。

  5. 在使用DataGrid的时候,有时候需要使某些列为ComboBox,这时自然想到使用DataGridComboBoxColumn,但是如果使用的是ItemsSource数据绑定后台的对象,就会发现,这根本就不能用。

  6. 默认刷新按钮之后,下拉框中没有数据。我仔细看了一下代码,前台代码中并没有进行数据绑定,而且后台代码中也没写绑定的语句。前台代码如下。如果如下图。

在这里插入图片描述
在这里插入图片描述
3) 我对程序进行了一些修改,前台代码不做修改,还是如下。
在这里插入图片描述
后台代码如下,进行了下拉框的绑定。

在这里插入图片描述
结果如下图。绑定是成功了,但是不显示我需要显示的值。
在这里插入图片描述

  1. 对前台代码进行了如下修改。对DataGridComboBoxColumn进行了绑定。然后F5,运行发现,下拉框的显示是正常了,但是不论我怎么改,DataGrid中的“ProvinceID”默认只是显示空白,什么也不显示,如下图。前台代码如下。
    在这里插入图片描述
    在这里插入图片描述
  2.  但是当我加载数据到DataGrid中时,ProvinceID列默认还是为空,并没有显示我想显示的省份名称这样的数据。经过一番的查找与学习,最终把前台代码修改成如下。这样修改之后在DataGrid默认绑定数据之后,ProvinceID列达到了我想要的结果。如下图。
    

后台代码如下,进行了下拉框的绑定。

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值