以下の例では、DataTemplateは1番目と2番目のリスト項目にのみ適用され、3番目と4番目は完全に無視されます。
<ListBox>
<ListBox.ItemTemplate>
<DataTemplate>
<Button Content="{Binding}"></Button>
</DataTemplate>
</ListBox.ItemTemplate>
<sys:String>One</sys:String>
<sys:String>Two</sys:String>
<ListBoxItem>Three</ListBoxItem>
<ListBoxItem>Four</ListBoxItem>
</ListBox>
私の質問はなぜですか?
出力ウィンドウを見ると、次のエラーが表示されます。「ItemTemplateとItemTemplateSelectorは、ItemsControlのコンテナタイプがすでに存在するアイテムでは無視されます。Type='ListBoxItem'。
それで、テンプレートが適用されない理由がわかりますが、リストアイテムでListBoxItemsオブジェクトを明示的に使用すると、WPFがすべて厄介になるのはなぜですか?つまり、WPFはListBoxItemsオブジェクト上のすべてのアイテムを暗黙的にホストしているので、エラーをスローするのではなく、WPFが実行するはずの作業の一部を実行してくれたことに感謝できないのはなぜですか?:)
ありがとうございました。