2012-03-19 4 views
0

목록 상자에서 항목을 삭제할 때 항목 ID를 찾는 방법은 무엇입니까?목록 상자 항목 삭제 기능?

<DataTemplate x:Key="ToDoListBoxItemTemplate"> 

      <Grid HorizontalAlignment="Stretch" Width="420"> 
       <Grid.ColumnDefinitions> 
        <ColumnDefinition Width="30"/> 
        <ColumnDefinition Width="*" /> 
        <ColumnDefinition Width="Auto" /> 
        <ColumnDefinition Width="100" /> 
       </Grid.ColumnDefinitions> 

       <!--<CheckBox 
        IsChecked="{Binding IsComplete, Mode=TwoWay}" 
        Grid.Column="0" VerticalAlignment="Top"/>--> 

       <TextBlock 
        Text="{Binding subcategname}" 
        FontSize="25" 
        Grid.Column="1" Grid.ColumnSpan="2" 
        VerticalAlignment="Top" Margin="-36, 12, 0, 0"/> 

       <Button         
        Grid.Column="3" 
        x:Name="deleteTaskButton" 
        BorderThickness="0"                 
        Margin="0, -18, 0, 0" Click="deleteTaskButton_Click"> 

        <Image 
        Source="Images/appbar.delete.rest.png" 
        Height="75" 
        Width="75"/> 

       </Button> 
      </Grid> 
     </DataTemplate> 




<ListBox x:Name="FinanceListBox" Margin="0,0,-12,0" ItemsSource="{Binding}" ItemContainerStyle="{StaticResource ListBoxItemStyle1}" ItemTemplate="{StaticResource ToDoListBoxItemTemplate}" SelectionChanged="FinanceList_SelectionChanged"> 
       </ListBox> 

SelectionChanged 이벤트에서 다음 코드를 작성했습니다.

private void FinanceList_SelectionChanged(object sender, SelectionChangedEventArgs e) 
     { 
      System.Collections.IList list = e.AddedItems; 
      if (e.AddedItems.Count == 1) 
      { 
       IEnumerable<Category> categs = list.Cast<Category>(); 
       Category em = categs.ElementAt<Category>(0); 
       int id = em.id; 
       int categoryid = em.categoryid; 
       string subcategoryname = em.subcategname; 

       NavigationService.Navigate(new Uri(String.Format("/SubCategories.xaml?id=" + id + "&categoryid=" + categoryid + "&subcategoryname=" + subcategoryname), UriKind.Relative)); 
      } 
     } 




private void deleteTaskButton_Click(object sender, RoutedEventArgs e) 
     { 


     } 

하지만 항목을 삭제할 때 특정 항목 ID를 찾는 방법. 항목을 삭제하는 특정 ID를 찾는 방법은 무엇입니까? 방법의

답변

2

하나는 삭제 방법은 다음 코드를 사용 후, 의미있는 식별자 버튼의 태그 속성을 결합하는 것입니다

Button b = sender as Button; //and now delete from your collection where id = b.Tag

2

버튼에 태그를 적용합니다. 코드에서

<Button         
        Grid.Column="3" 
        x:Name="deleteTaskButton" 
        BorderThickness="0" Tag="{Binding id}"                 
        Margin="0, -18, 0, 0" Click="deleteTaskButton_Click"> 

: Euqene가 언급 한 것처럼 :

private void deleteTaskButton_Click(object sender, RoutedEventArgs e) 
     { 
     Button b = sender as Button; 
     var id = (int)b.Tag;  
     //now do what you want with id 
     } 
0

하면 버튼에 태그를 지정하고 버튼에서의 DataContext를 얻을 수 있습니다, 당신의 XAML 못생긴 할 필요가 없습니다.

private void deleteTaskButton_Click(object sender, RoutedEventArgs e) 
{ 
    Button deleteButton = (Button)sender; 
    var entity = deleteButton.DataContext as MyEntity; 

    //Delete entity 
}