記事のカテゴリー: C#、.NET9
XAMLでジェネリック型を扱うときに型パラメーター(例えばList<int>
のint
)はどのように記述するのでしょうか。
x:TypeArgumentsディレクティブ
XAMLのルート要素がジェネリック型の場合はx:TypeArguments
ディレクティブを使って型パラメーターを指定できます。
このx:TypeArguments
ディレクティブがもっと広範に使えたら便利なのですが。
XAML:
<local:InputDialog x:TypeArguments="system:String" xmlns:system="clr-namespace:System;assembly=mscorlib" ...>
参照
ラッパークラスで包む
ラッパークラスで包んであげるとXAMLで型パラメーターを指定する必要がなくなります。
C#:
public class StringNode : Node<string> { ... }
XAML:
<Window.Resources> <local:StringNode ... /> </Window.Resources>
静的フィールドを使う
Type
型のプロパティにジェネリック型を指定したいときは、任意のクラスにジェネリック型の静的フィールドを宣言してx:Static
で指定すると型パラメーターを指定する必要がなくなります。
C#:
public static class GenericTypes { public static readonly Type StringNode = typeof(Node<string>); }
XAML:
<Style TargetType="{x:Static local:GenericTypes.StringNode}"> ... <Style>
0 件のコメント:
コメントを投稿