2013-03-08 39 views
1

我创建了一个简单的类像这样的......如何结合使用类中的泛型XAML

Public Class Localizer(Of T) 

     Public Shared ReadOnly Property DisplayName(ByVal propertyName As String) As String 
      Get 
       ... 
      End Get 
     End Property 

    End Class 

而且我试图绑定到它在XAML这样的事情...

Header="{x:Static loc:Localizer(Of AircraftReference).DisplayName [IsMilitary]}" 

但是这不能是正确的语法。这可能不可能。

回答

0

这里有两个问题。

  1. XAML对仿制药的支持是not complete;我不认为你可以在XAML中指定类型参数。

    然而,有一个简单的办法解决这个问题:

    Public Class Localizer(Of T) 
        Public Shared ReadOnly Property DisplayName As String 
         Get 
          ... 
         End Get 
        End Property 
    End Class 
    
    Public Class AircraftReferenceLocalizer 
        Inherits Localizer(Of AircraftReference) 
    End Class 
    

    现在你可以使用:

    Header="{x:Static loc:AircraftReferenceLocalizer.DisplayName}" 
    
  2. x:Static不支持参数化属性,所以你不能把这个字符串“IsMilitary” 。恐怕你必须找到没有x:Static的解决方案。描述想要解决的问题并寻求新问题的解决方案可能很有意义。

+0

非常感谢。这告诉我我需要知道什么。 – 2013-03-08 13:52:23