2011-08-05 18 views
0

私はListBoxに各Itemに対してチェックボックスとテキストブロックの組み合わせを表示する必要があります。ただし、アイテムはコレクション内には存在しませんが、クラス内でプロパティ(ブール値/文字列)として公開されます。つまり、各Itemは別のプロパティにバインドされるため、ItemのDataTemplateにBindingプロパティを設定できません。WPF DataTemplateを再利用

すべてのプロパティにバインドされていないDataTemplateを定義し、後でDataTemplateを使用するときにBindingを定義できますか。擬似コードで

UserControlsはためているものです

<ListBox> 
    <ListBoxItem DataTemplate="ReusableDataTemplate" CheckBoxBinding="{Path=Enable1}" TextBlockBinding="{Path=Enable1Text}"/> 
    <ListBoxItem DataTemplate="ReusableDataTemplate" CheckBoxBinding="{Path=Enable2}" 
TextBlockBinding="{Path=Enable2Text}"/> 
    <ListBoxItem DataTemplate="ReusableDataTemplate" CheckBoxBinding="{Path=Enable3}" TextBlockBinding="{Path=Enable3Text}"/> 
</ListBox> 

答えて

5

<DataTemplate x:Key="ReusableDataTemplate"> 
    <StackPanel Orientation="Horizontal"> 
     <CheckBox /> 
     <TextBlock /> 
    </StackPanel> 
</DataTemplate> 

そして後でとしてそれを使用しています。