1

我通过实体框架将 WPF DataGrid 绑定到实体。我没有找到以我想要的方式在 DataGrid 上呈现数据的方法,而且我不能/不想接触源数据库数据或实体。

生成的实体模型只有一个表(“Table1”),具有以下属性:

ID (Int64)
Date (DateTime)
Item1 (Decimal)
Item2 (Decimal)
Item3 (Decimal)

在 XAML 中我有:

<Window.Resources>
    <CollectionViewSource x:Key="listOfItems" Source="{Binding}" />
</Window.Resources>

和:

<DataGrid Name="grid" ItemsSource="{Binding Source={StaticResource listOfItems}}">
</DataGrid>

我在代码中设置了 CollectionViewSource 的源:

CType(Me.FindResource("listOfItems"), CollectionViewSource).Source = context.Table1.ToList()

(上下文已在前面声明,此处未显示)

这样我可以正确填充 DataGrid,但我想在 UI 上以不同的方式显示数据。这是它现在在 DataGrid 上的显示方式(顶行是 DataGrid 上的标题):

ID    Date      Item1    Item2    Item3
1     1.1.2000  100      200      300
2     2.1.2000  101      201      301
3     3.1.2000  102      202      302
4     4.1.2000  103      203      303
5     5.1.2000  104      204      304

但我需要将其显示为:

       1.1.2000  2.1.2000  3.1.2000  4.1.2000  5.1.2000
Item1  100       101       102       103       104
Item2  200       201       202       203       204   
Item3  300       301       302       303       304    

我怎样才能做到这一点?试图探索 CollectionViewSource 选项没有运气。或者我是否需要为此生成一个全新的对象/实体列表(希望没有)?DataGrid 上的数据可由用户编辑,并且必须最终通过 EF 持久化回数据库,因此我认为在数据库中创建视图(=只读)是不可能的。

4

0 回答 0