1. ホーム
  2. c#

XAML(.NET 4 Framework以前)でジェネリックタイプを指定することはできますか?

2023-12-12 12:11:04

質問

XAMLでDataTemplateを宣言して、特定の型が表示されるたびにそのテンプレートが使用されるようにすることができる。例えば、このDataTemplateは顧客の名前を表示するためにTextBlockを使用します。

<DataTemplate DataType="{x:Type my:Customer}">
    <TextBlock Text="{Binding Name}" />
</DataTemplate>

IList<Customer> が表示されるたびに使用される DataTemplate を定義することが可能かどうか疑問に思っています。例えば、ContentControlのContentがObservableCollection<Customer>であれば、そのテンプレートが使用されることになります。

XAML で {x:Type} マークアップ拡張を使用して IList のような汎用型を宣言することは可能ですか?Markup Extension を使用して XAML で IList のような汎用型を宣言することは可能ですか?

どのように解決するのですか?

すぐにはできません。しかし、そうしている進取の気性に富んだ開発者がいるのです。

Microsoft の Mike Hillberg は この投稿 などで使っています。もちろん、Googleには他にもあります。