При изменении выбранного элемента в ListBox я получаю странную ошибку, когда отображается измененный элемент, но я не могу отменить его или повторно выбрать.Выбор элемента списка в WPF Проблема при изменении элемента
Есть ли способ исправить это?
Вот пример приложения, демонстрирующего проблему.
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
this.DataContext = new WindowViewModel();
lst.SelectedIndex = 0;
}
private void Button_Click(object sender, RoutedEventArgs e)
{
((WindowViewModel)this.DataContext).Items[0] = "New Item";
}
}
public class WindowViewModel
{
public WindowViewModel()
{
Items = new ObservableCollection<string>();
Items.Add("Item1");
Items.Add("Item2");
Items.Add("Item3");
}
public ObservableCollection<string> Items { get; set; }
}
<Window x:Class="WpfSelectionIssue.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<StackPanel>
<Button Content="Change" Click="Button_Click" />
<ListBox x:Name="lst" ItemsSource="{Binding Items}" />
</StackPanel>
</Window>
ImageOfIssue http://img136.imageshack.us/img136/9396/wpfselectionissue.jpg
Проблема с SelectedItems, а не с ItemsSource. –
Итак, почему вам не нравится использовать IsSynchronizedWithCurrentItem? –