2016-05-13 105 views
0

我有一个<Checkbox/>在我的<GridView.ItemTemplate>。我如何处理<Checkbox/>关于它的元素?复选框在ItemTemplate

例如,我想在复选框被选中时删除项目。

我觉得应该写在这里。但是什么?

private void CheckBox_Checked_1(object sender, RoutedEventArgs e) 
{ 

} 

这里是我的XAML:

<GridView Margin="0,10,0,0" 
     RelativePanel.AlignHorizontalCenterWithPanel="True" 
     x:Name="GridColections" 
     IsItemClickEnabled="True" 
     SelectionMode="None" 
     ItemsSource="{x:Bind DS.AllRem, Mode=OneWay}" 
     ItemClick="GridColections_ItemClick" > 
    <GridView.ItemTemplate> 
     <DataTemplate x:DataType="local:GetRem" > 
      <Grid Margin="-2,0,-6,0" BorderBrush="LightGray" BorderThickness="1" HorizontalAlignment="Stretch"> 
       <Grid.ColumnDefinitions> 
        <ColumnDefinition Width="*" /> 
        <ColumnDefinition Width="40" /> 
       </Grid.ColumnDefinitions> 
       <Grid.RowDefinitions> 
        <RowDefinition Height="30" /> 
        <RowDefinition Height="30" /> 
       </Grid.RowDefinitions> 
       <TextBlock TextTrimming="CharacterEllipsis" Grid.Column="0" Grid.Row="0" HorizontalAlignment="Stretch" TextWrapping="Wrap" Text="{x:Bind ReminderName}" Margin="5,5,0,0" FontSize="20"/> 
       <TextBlock TextTrimming="CharacterEllipsis" Grid.Column="0" Grid.Row="1" Width="600" TextWrapping="Wrap" Text="{x:Bind ReminderDescription}" Margin="5,5,0,0" FontSize="12"/> 
       <CheckBox Grid.Column="2" Grid.Row="0" Grid.RowSpan="2" VerticalAlignment="Center" Checked="CheckBox_Checked_1"/> 
      </Grid> 
     </DataTemplate> 
    </GridView.ItemTemplate> 
</GridView> 
+0

尝试var item =(发件人为复选框).DataContext作为您的类。你会得到被检查的物品 – Archana

+0

@LovetoCode它的作品!谢谢 – SuxoiKorm

回答

0

的问题是,你几乎可以肯定希望能够在点击处理程序使用DataContext,但你不会得到容易因只具有参考到CheckBox这将是您的回调中的发件人参数。通常情况下,你会在这里创建一个Command对你的物品的视图模型,并绑定到该和任何其他信息,你想通过你会通过CheckBoxCommandParameter传入。

一旦你这样做了,你现在正在你的视图模型中运行,并引用通过命令参数所需的任何信息(例如,你可以设置CommandParameter = "{Binding}"来获取整个数据上下文,视图模型,并且可以从您的Command作为参数访问它)。你应该能够以这种方式解决你的问题。