2011-08-05 93 views
0

我有一個列表框需要顯示每個項目的複選框/文本塊組合。然而,這些項目不在集合中,而是作爲屬性(布爾/字符串)暴露在類中。這意味着我無法在Item的DataTemplate中設置Binding屬性,因爲每個Item都將綁定到不同的屬性。重複使用WPF DataTemplate

是否可以定義未綁定到任何屬性的DataTemplate,然後在使用DataTemplate時定義Binding。

僞代碼:

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

,後來用它作爲:

<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

這就是UserControls是。