2011-05-12 23 views
7

我已經看到了其他一些Silverlight'vs'問題,但是找不到這個特定的匹配項。DataTemplate vs ItemContainerStyle

我試圖定義我的對象綁定到ListBox將顯示的方式。我已經定義了一個DataTemplate,但我真的不確定這應該結束,ItemContainerStyle應該開始。

問題1: 對於DataTemplate所以ItemContainerStyle只是一個包裝,一個普通項目的風格可以適用於不同的數據佈局?

問題1A:如果是這樣,在一個共同的項目風格並不需要的情況下,是ItemContainerStyle甚至是必要的,也可以所有的佈局和樣式在DataTemplate界定?

問題1B:如果沒有,so what is it?

ListBox目前是這樣的:

<ListBox Margin="40,118,41,61" ItemTemplate="{StaticResource TaskDataTemplate}"/> 

的XAML我DataTemplate是這樣的:

<DataTemplate x:Key="TaskDataTemplate"> 
     <Grid d:DesignHeight="95" Height="150"> 
      <StackPanel Margin="11,8,-10,68" Orientation="Horizontal" d:LayoutOverrides="Width"> 
       <TextBlock x:Name="TaskLabel" Margin="0,0,0,8" Style="{StaticResource TitleTextSmall}" TextWrapping="Wrap" Text="Task" VerticalAlignment="Stretch" d:LayoutOverrides="Height"/> 
       <TextBlock x:Name="TaskID" HorizontalAlignment="Right" Margin="10,0,0,0" Style="{StaticResource TitleTextSmall}" TextWrapping="Wrap" Text="TaskID" VerticalAlignment="Stretch" d:LayoutOverrides="Height"/> 
       <TextBlock x:Name="ChangeList" Style="{StaticResource NormalText}" TextWrapping="Wrap" Text="Changes..." Margin="30,2,0,0"/> 
      </StackPanel> 
      <ComboBox x:Name="TaskType" Style="{StaticResource TaskComboBox}" Height="29" VerticalAlignment="Top" Margin="131,30,16,0" d:LayoutOverrides="VerticalAlignment"/> 
      <TextBlock x:Name="TaskTypeLabel" Margin="12,39,0,0" Style="{StaticResource NormalTextBold}" TextWrapping="Wrap" Text="Variation Reason" VerticalAlignment="Top" HorizontalAlignment="Left" Height="21"/> 
      <TextBox x:Name="TaskDescription" Margin="12,70,15,11" TextWrapping="Wrap" Text="Enter description..." Style="{StaticResource TaskTextBox}" d:LayoutOverrides="VerticalAlignment"/> 
     </Grid> 
    </DataTemplate> 

感謝。

回答

7

答1:是

答1A:據我可以告訴你,可以做在ItemTemplate所有的造型,但ItemContentStyle具有過壓/禁用/選擇等

控制鼠標的透明度VisualStates

如果你想改變這些不透明狀態的變化,或者你想要一個矩形以外的容器形狀,比如三角形,那麼你必須重寫默認的ItemContainerStyle。

+0

不錯的,ta。我通過ItemContentTemplate假設你的意思是ItemContainerStyle? – Town 2011-05-12 13:33:43

+0

是的,編輯。謝謝 – BenCr 2011-05-12 13:35:43

+0

此外,對於容器的形狀,我可以將我的DataTemplate的內容分組到一個邊框,並有圓角?這只是複雜的形狀,需要使用ItemContainerStyle嗎? – Town 2011-05-12 13:37:35

相關問題