Windows Phone 72010. 6. 29. 10:43

점점 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이 뜨지 않기때문에

만든 커맨드 이름을 쓰면 된다.^^

Posted by 동동(이재동)