WPF - Comment puis-je obtenir un objet qui est lié à un ListBoxItem dos

voici ce que je voudrais faire. Je reçois une Liste d'objets à partir d'une base de données et lier de cette liste à un Contrôle ListBox. Le ListBoxItems se composent d'une zone de texte et un bouton. Voici ce que j'ai trouvé. Jusqu'à ce point, il fonctionne comme prévu.
L'objet a un certain nombre de Propriétés comme ID, Nom. Si je clique sur le bouton dans le ListBoxItem l'Élément doit être effacé de la liste et aussi à partir de la base de données...

<ListBox x:Name="taglistBox">    
                        <ListBox.ItemContainerStyle>
                            <Style TargetType="{x:Type ListBoxItem}">
                                <Setter Property="HorizontalAlignment" Value="Stretch"/>
                                <Setter Property="Template">
                                    <Setter.Value>
                                        <ControlTemplate TargetType="ListBoxItem">
                                            <ContentPresenter HorizontalAlignment="Stretch"/>
                                        </ControlTemplate>
                                    </Setter.Value>
                                </Setter>
                                <Setter Property="Tag" Value="{Binding TagSelf}"></Setter>
                            </Style>
                        </ListBox.ItemContainerStyle>
                        <ListBox.ItemTemplate>
                            <DataTemplate>
                                <Grid HorizontalAlignment="Stretch">
                                    <Grid.ColumnDefinitions>
                                        <ColumnDefinition Width="Auto"/>
                                        <ColumnDefinition/>
                                    </Grid.ColumnDefinitions>
                                    <Button Grid.Column="0" Name="btTag"  VerticalAlignment="Center"  Click="btTag_Click" HorizontalAlignment="Left">
                                        <Image Width="16" Height="16" Source="/WpfApplication1;component/Resources/104.png"/>
                                    </Button>
                                    <TextBlock Name="tbtagBoxTagItem" Margin="5" Grid.Column="1" Text="{Binding Name}" VerticalAlignment="Center" />                                        
                                 </Grid>
                            </DataTemplate>
                        </ListBox.ItemTemplate>
                    </ListBox>

Textblock.Le texte est lié à l'objet.Le nom et le ListBoxItem.Balise d'objet.TagSelf (qui est juste une copie de l'objet lui-même).

Maintenant mes questions

  1. Si je clique sur le bouton dans le listboxItem comment puis-je obtenir le listboxitem et l'objet est lié à dos. Pour supprimer un objet de la base de données, je dois le récupérer en quelque sorte. J'ai essayé quelque chose comme

    ListBoxItem lbi1 =
    (ListBoxItem)(taglistBox.ItemContainerGenerator.ContainerFromItem(taglistBox.Éléments.CurrentItem));
    ObjectInQuestion t = (ObjectInQuestion) lbi1.Tag;

  2. Est-il un moyen de mettre à jour automatiquement le contenu de la zone de liste si le Itemssource changements? Je suis en train de réaliser que par

    taglistBox.ItemsSource = null;

    taglistBox.ItemsSource = ObjectInQuestion;

J'apprécierais toute aide que vous pouvez donner 😀
Merci d'avance

InformationsquelleAutor JonBlumfeld | 2010-05-07