2011-03-27 5 views
1

DataTemplate을 사용하여 Itemtemplate을 만드는 목록 상자가 있습니다. 데이터 템플릿에있는 체크 박스와 버튼에 대한 이벤트를 작성할 수 있기를 원하지만 발사하지 않는 것 같습니다.Windows Phone 7 DataTemplates 내의 이벤트에 연결

여기 내 xaml이며 기본적으로 이벤트 기능에 messagebox.show ("worked")를 표시하려고했습니다.

<ListBox x:Name="ListBox_Items" Margin="0,91,0,8" Foreground="#FF4BE5DB"> 
    <ListBox.ItemTemplate> 
     <DataTemplate> 
      <StackPanel Orientation="Horizontal" Width="700"> 
       <CheckBox IsChecked="{Binding needPurchase}" Click="NeedPurchase_Click" Name="CheckBox_NeedPurchase"/> 
       <CheckBox IsChecked="False" Name="InCart"/> 
       <StackPanel Orientation="Vertical"> 
        <TextBlock Text="{Binding name}"/> 
        <TextBlock Text="{Binding storeLocation}"/> 
       </StackPanel> 
       <Button HorizontalAlignment="Right" Content="DELETE" Click="Button_Click" /> 
      </StackPanel> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 

답변

-2

우선 서식 파일의 모든 컨트롤에서 이름을 제거해야합니다. 목록에 10 개의 항목이있는 경우 작동하지 않는 동일한 이름의 컨트롤 집합이 10 개 있습니다.

2

항목이 DataTemplate 내에 정의되어 있으므로 부모 클래스의 코드 숨김에 연결되지 않습니다. 템플리트 항목에 대한 이벤트를 처리하려면 명령 사용을 고려해야합니다. 어떤 명령이 있는지 알지 못한다면 (따라서 MVVM이 무엇인지 알지 못할 수도 있습니다) 설명 like this by Jeremy Likness을 확인해야합니다.

1

나는 명령 사용이 최선의 방법임을 동의합니다.

그러나 ItemTemplate/DataTemplate 내부에 배치 된 컨트롤을 평가하고 (일부 이벤트에 가입) VisualTreeHelper를 사용하여 컨트롤을 평가할 수 있습니다.