2011-06-30 4 views
1

リストボックスのitemtemplateを設定する方法をインターネットで検索したところ、スタイル設定ツールをwindow.resourcesで使用した例が見つかりました。だから、いくつかのオプションがあります。私はwindow.resourcesにデータ型を作成することも、スタイルセッターを作成することもできます。データ型の代わりにスタイルを設定するのは難しいでしょうか?どちらの方法を使うべきですか?WPFの場合、setterを使用してitemtemplateプロパティを設定するのは難しいですか?

ありがとうございます。

+1

これらのセッターベースの例は、単純なやり方では実現できないような厄介なケースを回避することがあります。私はちょうどdatatemplateを使用します。 –

答えて

1

どちらか一方が良いとは言えません。暗黙的なDataTemplatesは、たとえTypeがどのように見えるべきかを視覚的なツリーの一部のためだけにグローバルに良い方法です。 ItemTemplateを使用すると、特定のItemsControl(ListBox、ComboBoxなど)でどのように表示されるべきかを指定できます。

両方の組み合わせを使用することもできます。これにより、「デフォルト」の外観を持つことができますが、コントロールまたはコントロールタイプごとにカスタマイズできます。

ItemTemplateを使用しても、すべてのListBox、または1つのListBoxインスタンスに対してグローバルに設定できます。だから、時には、時には1つの方法がより優れていることもあります。あなたがしようとしていることに依存します。

0

スタイルは一般的に、同じタイプの異なるインスタンスに同じ値を適用するために使用されます。そうでない場合は、スタイルを作成する必要はありません。

0

私は、項目のタイプとして<DataTemplate>を作成し、WPFがそれを把握させることを好みます。

<DataTemplate DataType="{x:Type local:Task}"> 
    <StackPanel> 
    <TextBlock Text="{Binding Path=TaskName}" /> 
    <TextBlock Text="{Binding Path=Description}"/> 
    <TextBlock Text="{Binding Path=Priority}"/> 
    </StackPanel> 
</DataTemplate> 

<List ItemSource="{Binding MyListOfTaskItems"/> 
関連する問題