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

Большое спасибо. Это говорит мне, что мне нужно знать. –