DataGrid不显示数据,而是显示模型类名

时间:2016-12-03 16:33:19

标签: c# wpf wpfdatagrid

当我将数据集合绑定到我的数据网格时,它不显示数据而不是数据,它显示模型类名称我有多少行具有那么多时间。我尝试了普通的WPF数据网格和开发快速数据网格,但任何事情对我都不起作用。

XAML:

使用WPF DataGrid

 <DataGrid ItemsSource="{Binding EmpDetails}" AutoGenerateColumns="True"/>

使用Dev Express DataGrid

 <dxg:GridControl ItemsSource="{Binding EmpDetails}" AutoPopulateColumns="True" AutoGenerateColumns="AddNew" >
                            <dxg:GridControl.View>
                                <dxg:TableView />
                            </dxg:GridControl.View>
                        </dxg:GridControl>

我的收藏中有2条记录,请在下面找到图片

https://i.stack.imgur.com/pdjQt.jpg

Dev Express DataGrid运行时图像:

https://i.stack.imgur.com/Iq9VC.jpg

WPF DataGrid运行时图像:

https://i.stack.imgur.com/HMgd8.png

感谢您花时间回答我的问题。

2 个答案:

答案 0 :(得分:0)

确保IEnumerable中的类型T从&#34; EmpDetails&#34; source属性对于要在DataGrid中自动生成的每个列都有一个公共属性(不是字段)。请参阅以下示例代码。

<强>型号:

#include<stdio.h>

void aquire_marks(char marks[], char names[][11]){ // 11 - max name length + 1
    char j, mark;

    for(j=0; j<5; j++){
        printf("Enter mark for %s: ", names[j]);
        scanf("%d", &mark);
    }
}

int main() {
    char names[5][11] = {"a", "b", "c", "d", "e"};
    char marks[5];

    aquire_marks(marks, names);
}

查看型号:

Public Class EmployeeDetails
  Public Property ColumnA As String
  Public Property ColumnB As String
End Class

查看:

Public Class ViewModel
Public Sub New()
    EmpDetails = New List(Of EmployeeDetails)
    EmpDetails.Add(New EmployeeDetails With {.ColumnA = "A1", .ColumnB = "B1"})
    EmpDetails.Add(New EmployeeDetails With {.ColumnA = "A2", .ColumnB = "B2"})
End Sub

Public Property EmpDetails As ObservableCollection(Of EmployeeDetails)

End Class

MainWindow

答案 1 :(得分:0)

将EmployeeDetails设置为Observable Collection,并将表的所有列写为具有OnPropertyChange的Property,包括Model Class。

EX:

ggplot() + 
  geom_polygon(data = world_data2, aes(x = long, y = lat, group = group, fill = Count)) +
  coord_fixed(1.3)