1

このような単純なクラスを作成しました...

 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]}"

しかし、これは正しい構文であってはなりません。これは不可能かもしれません。

4

1 に答える 1

1

ここには 2 つの問題があります。

  1. ジェネリックの XAML サポートは完全ではありません。XAML で type パラメータを指定することはできないと思います。

    ただし、この問題には簡単な回避策があります。

    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。解決したい問題を説明し、新しい質問で解決策を求めることは理にかなっているかもしれません。

于 2013-03-08T13:45:28.667 に答える