0

我需要一个具有以下签名的函数:

System.Reflection.PropertyInfo getPropertyInfo(System.Type type, string NavigationPath)

或在 VB 中:

Function GetPropertyInfo(Type As System.Type, NavigationPath As String) As System.Reflection.PropertyInfo

用法:

Dim MyPropertyInfo As PropertyInfo = GetPropertyInfo(GetType(Order),"Customer.Address.State.Code")
Dim DisplayName As String = MyStringFunctions.FriendlyName(MyPropertyInfo.Name)

它使用句点分隔的路径导航。我不知道如何利用数据绑定框架来做到这一点。第一个障碍是它似乎只想使用对象(而不是类型),第二个障碍是我什至无法让它与控件之外的对象一起使用。我会认为数据绑定在某些地方处理类型和属性类型。它必须!

谢谢!

4

2 回答 2

0

对于数据绑定,您需要属性的值而不是属性本身(即 returnobject而不是PropertyInfo)。

这个类似的问题提供了这样的实现,如果您实际上希望该方法返回属性而不是它的值,也可以轻松修改它。

于 2012-06-26T19:22:31.343 回答
0

这是我想出的,不使用绑定基础设施。我仍然认为绑定会做得更好。

  Function GetPropertyInfo(Type As System.Type, NavigationPath As String) As System.Reflection.PropertyInfo
    For Each Part As String In NavigationPath.Split(".")
      GetPropertyInfo = Type.GetProperty(Part)
      If GetPropertyInfo IsNot Nothing Then
        Type = GetPropertyInfo.PropertyType
      End If
    Next
  End Function
于 2012-06-26T20:01:32.617 回答