2009. 3. 16. 10:59

Silverlight를 ControlTemplate와 DataTemplate 를 접했다.
자주 접한 것 같지만 이 녀석들은 내겐 참 헷갈린다. (곧 잡아 먹어주겠다~ 흐흐흐)
이번 블로깅을 통해 조금이나마 개념 파악을 위해 DataTemplate를 정리해 보고자 한다.

그중 가장 흔하게 접하는 것이 ListBox 컨트롤의 ListBoxItem일 것이다.
이 ListBoxItem을 XAML 코드를 보면서 이해해 보고자 한다.

ListBoxItem을 다른 형태로 출력하는 방법은 아래 2가지가 있다.
(사실 아마 더 있을지도 모른다. 지금 개념파악을 위해 정리하는 것이므로 더 있으면 추가하도록 할 것이다.)

--------------------------------코드보기-----------------------------------

1) Inline 방법

<UserControl ...>

<ListBox x:Name="MyBooks" Margin="5" ItemsSource="{Binding}">
 <ListBox.ItemTemplate>
  <DataTemplate>
   <StackPanel Orientation="Horizontal" >
    <TextBlock Text="{Binding Name}" />
    <TextBlock Text="{Binding Birthday}" />
   </StackPanel>
  </DataTemplate>
 </ListBox.ItemTemplate>
</ListBox>

</UserControl>


--------------------------------------------------------------------------------

2) Resource 방법

<UserControl ...>
<UserControl.Resources>
 <DataTemplate x:Key="DataTemplate1">
  <StackPanel Orientation="Horizontal" >
   <TextBlock Text="{Binding Name}"/>
            <TextBlock Text="{Binding Birthday}" />
  </StackPanel>
 </DataTemplate>
</UserControl.Resources>

...

<ListBox ItemTemplate="{StaticResource DataTemplate1}" x:Name="listboxMediaList" Margin="5,3,5,5" Grid.Row="1"  />

...

</UserControl>

Posted by CoolDragon