점점 mvvm에 대해서 아는것 같다…
일반 컨트롤의 이벤트는 command를 이용해서 빼는것은 이제 조금씩 익숙해지고 있다.
하지만 ListBox안의 Template에서 이벤트를 빼야 한다면? 자 해보자
<ListBox x:Name="SearchCountryListBox" ItemsSource="{Binding SearchCountryListBoxItemSource}" Height="240">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Image Source="{Binding Flag}" Width="80" Height="50" Grid.Column="0" />
<TextBlock Text="{Binding Name}" FontSize="35" Grid.Column="1" Margin="40,0,40,0"/>
<Button x:Name="button" Content="button " Grid.Column="2" >
<i:Interaction.Behaviors>
<HugeFlow_CommandPattern_Interactivity:ExecuteAncestorInstantCommandBehavior CommandName="SearchCountrySelectButtonCommand">
<i:Interaction.Triggers>
<i:EventTrigger SourceName="button" EventName="Click">
<i:InvokeCommandAction CommandName="CommandTriggers"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</HugeFlow_CommandPattern_Interactivity:ExecuteAncestorInstantCommandBehavior>
</i:Interaction.Behaviors>
</Button>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
보이는가? 버튼에 command pattern 적용한것을?
이렇게 만들려면 치는거보다 블랜드에서 하는게 편하다…
해당 listbox item template에 들어가서
일단 ExecuteAncestorInstatntCommandBehavior를 더블 클릭하여 만든다.
여기서 부턴 일반 commandPattern이랑 같으니까 생략~
아 그리고 중요한건 블랜드에서 CommandName을 쓸때 수동으로 쓸수 밖에 없다 DataBinding이 뜨지 않기때문에
만든 커맨드 이름을 쓰면 된다.^^
'Windows Phone 7' 카테고리의 다른 글
[wp7] 유동적인 Button 에서 Template 입히기 (0) | 2010.07.09 |
---|---|
[wp7] 다른 프로젝트에 있는 페이지로 Navigate 하기 (0) | 2010.07.07 |
[wp7] StartWith의 편리함 String내에서 자동완성 기능 할때 좋음. (0) | 2010.06.28 |
[wp7] ModelView에서 View의 Control을 제어 하고 싶을때? (0) | 2010.06.23 |
[WP7] List 내용값 정렬하기(Custrom List Sorting) (0) | 2010.06.16 |