我的ListBox.SelectedValue返回第一个选定的项目,而不是当前选定的项目。 (当前选择的项目意味着除了选择的ITEMS之外,我还在显示最后选择的项目)

我的SelectionMode这次是Multiple not Single。

private void ListBoxSource_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        var fileSelected = (FileFound)this.ListBoxSource.SelectedValue;
        BitmapImage bmpImage = new BitmapImage();
        bmpImage.BeginInit();
        bmpImage.UriSource = new Uri(fileSelected.FileFullName, UriKind.Absolute);
        bmpImage.EndInit();

        Image1.Source = bmpImage;

     }


现在,我没有在事件上执行此操作,而是尝试将Image控件绑定到ListBoxSource,但没有任何显示。

 Source="{Binding ElementName=ListBoxSource, Path=SelectedItems


有机会绑定它吗?或我的SelectionChangedEvent代码有什么问题?

最佳答案

要获取最后选择的项目,您需要SelectedItems属性的最后一个索引。

var lb = (sender as ListBox);
lb.SelectedItems[lb.SelectedItems.Count - 1];


编辑

要获得最后选择的项目作为FileFound对象,我想您需要这样做:

var lb = (sender as ListBox);
FileFound lastSelectedFile =
                 (FileFound)lb.SelectedItems[lb.SelectedItems.Count - 1];

关于c# - 在SelectionChanged事件(ListBox:SelectionMode = Multiple)上,总是返回最先选择的项目而不是当前的,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8606129/

10-10 22:29