2011-05-12 2 views
7

다른 Silverlight 'vs'질문을 보았지만이 특정 일치 항목을 찾을 수 없습니다.DataTemplate vs ItemContainerStyle

ListBox에 바인딩 된 내 개체가 표시되는 방식을 정의하려고합니다. 내가 DataTemplate을 정의했지만,이 부분이 어디에서 끝나야할지 확실하지 않으며 ItemContainerStyle을 시작해야합니다.

질문 1 : 은 공통 항목 스타일이 서로 다른 데이터 레이아웃에 적용 할 수 있도록 DataTemplate에 대한 ItemContainerStyle 단지 래퍼인가?

질문 A : 그렇다면은, 공통 항목 스타일이 요구되지 않는 경우에, 심지어 필요하거나 모든 레이아웃과 스타일이 DataTemplate에서 정의 할 수 ItemContainerStyle입니까?

질문 1B : 그렇지 않을 경우, so what is it?

ListBox은 다음과 같이 현재 내 DataTemplate에 대한

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

XAML이 같다 :

<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 : 예

응답 A : 지금까지 내가 당신이 ItemTemplate을 귀하의 모든 스타일을 할 수 말할 수 있지만 ItemContentStyle이/비활성화/선택 등

을 통해 마우스의 불투명도를 제어 VisualStates을 가지고로

불투명도 상태 변경을 변경하려는 경우 또는 예를 들어 삼각형과 같이 직사각형과 다른 컨테이너 모양을 원할 경우 기본 ItemContainerStyle을 대체해야합니다.

+0

좋은 1 개, ItemContentTemplate에 의해 ItemContainerStyle을 의미하는 것으로 가정합니다. – Town

+0

예, 편집되었습니다. 감사합니다 – BenCr

+0

또한, 컨테이너 모양에 대한 내 DataTemplate의 내용을 테두리로 그룹화 할 수 있고 그것에 둥근 모서리가 있습니까? ItemContainerStyle을 사용해야하는 복잡한 모양입니까? – Town