【问题标题】:Mysterious datagrid columns神秘的数据网格列
【发布时间】:2014-02-14 08:21:03
【问题描述】:

我对数据库和 Linq to SQL 还很陌生,但是我已经能够通过互联网和我拥有的各种书籍找到解决我大部分问题的方法。然而,我在填充我的数据网格时遇到了问题,我找不到任何有相同问题的人或任何解决该问题的方法。

这是我的查询和填充文本框和数据网格的代码:

Dim dbVehSearch As New VehicleDataClassesDataContext

    Dim makeSearch = (From v In dbVehSearch.Vehicles Where v.VehicleId = CStr(txtVehID.Text)).SingleOrDefault()
    Dim bolExists As Boolean = If(makeSearch Is Nothing, True, False)

    If bolExists = False Then
        'txtMake.Text = makeSearch.FirstOrDefault.ToString
        txtMake.Text = makeSearch.Make
        txtModel.Text = makeSearch.Model
        txtModelYear.Text = makeSearch.ModelYear
        txtEngine.Text = makeSearch.Engine
        txtOilFilter.Text = makeSearch.OilFilter
        txtQts.Text = makeSearch.QtsAmt
        dgPastServices.ItemsSource = makeSearch.Services

    Else
        txtMake.Text = vbNullString
        txtModel.Text = vbNullString
        txtModelYear.Text = vbNullString
        txtEngine.Text = vbNullString
        txtOilFilter.Text = vbNullString
        txtQts.Text = vbNullString
        dgPastServices.ItemsSource = Nothing
    End If

除了填充数据网格时,所有工作都按我的意愿进行,最后我得到两个不需要的列,其中包含我在数据库中的三个表中的两个表的名称。我不确定为什么要在此处插入表名或如何摆脱它们。这是指向数据网格外观的链接。

datagrid with extra columns of table names

任何帮助将不胜感激。

“发票”和“车辆”是额外的列。车辆列中还有一些代码。

【问题讨论】:

  • 您的服务类中是否定义了发票和车辆?
  • 唯一的连接是它们在数据库中的关系。

标签: wpf vb.net linq-to-sql


【解决方案1】:

在定义数据网格时,在 xaml 中定义要在网格中看到的列。确保自动生成列属性设置为 false。

<dg:DataGridTextColumn Header="Model" Binding="{Binding Path=Model}" />

【讨论】:

  • 当我尝试这种方法时,我在 dgPastServices.itemsSource = makeSearch.Services 上收到“使用 ItemsSource 之前项目集合必须为空”的错误
  • 太棒了...非常感谢你给我指出这个例子!现在就像一个魅力。我忘记了一些简单的 xaml 代码。