вот что я хотел бы сделать. Я получаю список объектов из базы данных и привязываю этот список к элементу управления ListBox. Элементы ListBoxItems состоят из текстового поля и кнопки. Вот что я придумал. До этого момента он работает по назначению. Объект имеет ряд свойств, таких как ID, Name. Если я нажимаю на кнопку в ListBoxItem пункт должен быть стерт из ListBox, а также из базы данных ...WPF - Как получить объект, привязанный к элементу 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>
Textblock.Text связан с object.Name и ListBoxItem.Tag объекта. TagSelf (который является только копией самого объекта).
Теперь мои вопросы
Если я нажимаю кнопку в ListBoxItem, как я могу получить ListBoxItem и объект, связанный с ним обратно. Чтобы удалить объект из базы данных, мне нужно как-то его восстановить. Я пытался что-то вроде
ListBoxItem lbi1 =
(ListBoxItem) (taglistBox.ItemContainerGenerator.ContainerFromItem (taglistBox.Items.CurrentItem)); ObjectInQuestion t = (ObjectInQuestion) lbi1.Tag;Есть ли способ автоматически обновлять содержимое ListBox при изменении Item Item? Прямо сейчас я достигаю этого
taglistBox.ItemsSource = null;
taglistBox.ItemsSource = ObjectInQuestion;
Я бы признателен за любую помощь вы можете дать: D Заранее спасибо