Vb.net DisplayName DataAnnotations在WinForms 3.5 DataGridView中不工作
好吧,我在这里完全不知所措。我已经使用MVC模型绑定成功地使用了DataAnnotations属性DisplayName,甚至使用了WPF/Silverlight模型绑定,当然效果很好,但现在我正在进行一个项目,我不得不使用VB.NET 3.5 WinForms 我有一个Linq2Sql模型,我为我的一个类创建了一个分部类,并包含一个指向元数据类的MetadataType属性。我向元数据类中的属性添加了DisplayName属性。然后,我将datagridview与IQueryable(属于mydatatype)绑定,但网格中的列名是属性名,而不是DisplayName 我错过什么了吗?要让datagridview使用DisplayName,我还需要做些什么吗 在我的模型课上: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
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