Voici ce que je voudrais faire. Je reçois une liste d'objets à partir d'une base de données et lie cette liste à un contrôle ListBox. Les ListBoxItems consistent en une zone de texte et un bouton. Voici ce que j'ai trouvé. Jusqu'à présent, cela fonctionne comme prévu. L'objet a un certain nombre de propriétés telles que ID, Name. Si je clique sur le bouton dans la ListBoxItem l'élément doit être effacé de la zone de liste et aussi de la base de données ...WPF - Comment obtenir un objet lié à un ListBoxItem
<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>
Le Textblock.Text est lié à object.Name et ListBoxItem.Tag à l'objet. TagSelf (qui est juste une copie de l'objet lui-même).
Maintenant, mes questions
Si je clique sur le bouton dans la ListBoxItem comment puis-je obtenir le ListBoxItem et l'objet lié à revenir. Afin de supprimer l'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.Items.CurrentItem)); ObjectInQuestion t = (ObjectInQuestion) lbi1.Tag;Existe-t-il un moyen de mettre à jour automatiquement le contenu de la ListBox si la ressource Itemssource change? En ce moment j'y arrive par
taglistBox.ItemsSource = null;
taglistBox.ItemsSource = ObjectInQuestion;
Je vous remercie de toute aide que vous pouvez donner: D Merci à l'avance