Vb.net DisplayName DataAnnotations在WinForms 3.5 DataGridView中不工作

Vb.net DisplayName DataAnnotations在WinForms 3.5 DataGridView中不工作,vb.net,winforms,linq-to-sql,.net-3.5,data-annotations,Vb.net,Winforms,Linq To Sql,.net 3.5,Data Annotations,好吧,我在这里完全不知所措。我已经使用MVC模型绑定成功地使用了DataAnnotations属性DisplayName,甚至使用了WPF/Silverlight模型绑定,当然效果很好,但现在我正在进行一个项目,我不得不使用VB.NET 3.5 WinForms 我有一个Linq2Sql模型,我为我的一个类创建了一个分部类,并包含一个指向元数据类的MetadataType属性。我向元数据类中的属性添加了DisplayName属性。然后,我将datagridview与IQueryable(属于my

好吧,我在这里完全不知所措。我已经使用MVC模型绑定成功地使用了DataAnnotations属性DisplayName,甚至使用了WPF/Silverlight模型绑定,当然效果很好,但现在我正在进行一个项目,我不得不使用VB.NET 3.5 WinForms

我有一个Linq2Sql模型,我为我的一个类创建了一个分部类,并包含一个指向元数据类的MetadataType属性。我向元数据类中的属性添加了DisplayName属性。然后,我将datagridview与IQueryable(属于mydatatype)绑定,但网格中的列名是属性名,而不是DisplayName

我错过什么了吗?要让datagridview使用DisplayName,我还需要做些什么吗

在我的模型课上:

Imports System.ComponentModel
Imports System.ComponentModel.DataAnnotations

<MetadataType(GetType(vwREVIEW_ECRMetadata))> _
Partial Class vwREVIEW_ECR
    Public Sub TestMethod()

    End Sub
End Class

Public Class vwREVIEW_ECRMetadata

    Private _ECRNumber As String
    <DisplayName("ECR #")> _
    Public Property ECRNumber() As String
        Get
            Return _ECRNumber
        End Get
        Set(ByVal value As String)
            _ECRNumber = value
        End Set
    End Property

End Class
在我的演示者课程中:

Public Sub GetData()
    view.FillData(model.GetFilteredECRsForLookup())
End Sub
我认为:

Public Sub FillData(ByVal data As System.Linq.IQueryable(Of vwREVIEW_ECR)) Implements ILookupECRView.FillData
    Me.uxECRData.DataSource = data
End Sub

任何帮助都将不胜感激!谢谢

好的,我找到了解决问题的办法。我甚至没有这样想,但是在ASP.NET和WPF中,这种行为是由于内置了模型绑定行为。WinForms也有数据绑定,但它不仅仅是为您的应用程序而存在的。虽然我可以在运行时将我的datagridview“绑定”到我的linq2sql生成的对象,这将完成我所需要的,但我需要在设计时这样做,因此,我修改了MVP,以便在需要时使用ViewModels,并在运行时将datagrid绑定到该对象,以获得我想要的列名。ViewModel连接到模型,可以将实际值传递给它

虽然我没有完全实现他所做的事情,但我还是在这个博客上采用了这种方法:

Public Sub FillData(ByVal data As System.Linq.IQueryable(Of vwREVIEW_ECR)) Implements ILookupECRView.FillData
    Me.uxECRData.DataSource = data
End Sub