2016-05-13 41 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作爲參數訪問它)。你應該能夠以這種方式解決你的問題。