我的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/