これが私がやりたいことです。データベースからオブジェクトのリストを取得し、このリストをListBoxコントロールにバインドします。ListBoxItemsは、テキストボックスとボタンで構成されています。これが私が思いついたものです。この時点までは、意図したとおりに機能します。オブジェクトには、ID、名前などのいくつかのプロパティがあります。ListBoxItemのボタンをクリックすると、アイテムはListBoxとデータベースから消去されます...
<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はobject.TagSelf(オブジェクト自体の単なるコピー)にバインドされます。
今私の質問
listboxItemのボタンをクリックした場合、listboxitemとそれにバインドされているオブジェクトを元に戻すにはどうすればよいですか。データベースからオブジェクトを削除するには、なんらかの方法でオブジェクトを取得する必要があります。私は次のようなことを試みました
ListBoxItem lbi1 =
(ListBoxItem)(taglistBox.ItemContainerGenerator.ContainerFromItem(taglistBox.Items.CurrentItem)); ObjectInQuestion t =(ObjectInQuestion)lbi1.Tag;Itemssourceが変更された場合にListBoxの内容を自動的に更新する方法はありますか?今、私はそれを達成しています
taglistBox.ItemsSource = null;
taglistBox.ItemsSource = ObjectInQuestion;
私はあなたが与えることができるどんな助けにも感謝します:D事前に感謝します