我已經看到了其他一些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>
感謝。
不錯的,ta。我通過ItemContentTemplate假設你的意思是ItemContainerStyle? – Town 2011-05-12 13:33:43
是的,編輯。謝謝 – BenCr 2011-05-12 13:35:43
此外,對於容器的形狀,我可以將我的DataTemplate的內容分組到一個邊框,並有圓角?這只是複雜的形狀,需要使用ItemContainerStyle嗎? – Town 2011-05-12 13:37:35