2013-03-08 43 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