分離ストレージからの画像が取り込まれている ListBox があります。ユーザーは画像を選択して、その画像に対して何らかのアクションを実行できます。リストで現在選択されている画像をユーザーに通知するために、選択したアイテムの周りに境界線を配置しました。ただし、リストで新しい画像が選択されると、その画像の周りにも境界線が配置されるため、両方の画像に境界線が表示されます。現在選択されている画像のみが強調表示されるように、以前に選択した画像の境界線を削除する方法を見つけたいと思います。
私がこれまでに持っているものは次のとおりです。
MainPage.xaml
<ListBox x:Name="Recent" ItemsSource="{Binding Pictures}" Margin="8"
SelectionChanged="recent_SelectionChanged" toolkit:TiltEffect.IsTiltEnabled="True">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<toolkit:WrapPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<Border>
<Image x:Name="recentImage" Source="{Binding Source}" Margin="12" Width="115"/>
</Border>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
MainPage.xaml.cs
private void recent_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
//Place border round currently selected image
var lb = sender as ListBox;
var lbi = lb.ItemContainerGenerator.ContainerFromItem(lb.SelectedItem) as ListBoxItem;
lbi.BorderThickness = new Thickness(2, 2, 2, 2);
lbi.BorderBrush = new SolidColorBrush((Color)Application.Current.Resources["PhoneAccentColor"]);
//Where and how to remove border from previously selected image?
}
したがって、これを達成するために正確に何をすべきかわかりません。ListBox で以前に選択した画像アイテムを検出する方法、または現在選択されているアイテムに境界線を追加する前に、どのアイテムに境界線があるかを判断して削除するにはどうすればよいですか? 考えや参照はありますか?