WPF Tips: Listbox SelectionChanged触发前的选项

Posted Jane&Coding

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF Tips: Listbox SelectionChanged触发前的选项相关的知识,希望对你有一定的参考价值。

想在Listbox的SelectionChanged事件触发时对之前的选项进行处理。但是listbox没有previewSelectionChanged事件。

解决办法:

1. Validation

因为要处理的项在TextBox中,所以可以给TextBox添加一个Validation。但是由于TextBox是与Property Binding,而Validation是在binding赋值之前进行操作(调试过程中是这样的流程),所以无法获取textbox中的值。如果没有binding应该是可以。

参考:https://social.msdn.microsoft.com/Forums/vstudio/en-US/e96c725e-a86d-427e-944b-fcc4273ac260/any-way-to-preview-the-listviewselectionchanged-event?forum=wpf

2. 获取SelectionChangedEventArgs中的RemovedItem。最后采用的这个方法。

private void ListBox_SelectionChanged(object sender , SelectionChangedEventArgs e)
{
    // Here are your old selected items from the selection changed.
    // If your list box does not allow multiple selection, then just use the index 0
    // but making sure that the e.RemovedItems.Count is > 0 if you are planning to address by index.
    IList oldItems = e.RemovedItems;

    // Do something here.

    // Here are you newly selected items.
    IList newItems = e.AddedItems;
}

参考:http://stackoverflow.com/questions/1548237/how-to-get-something-like-previewselectionchanged-event-in-listbox

以上是关于WPF Tips: Listbox SelectionChanged触发前的选项的主要内容,如果未能解决你的问题,请参考以下文章

WPF:将 ListBox ContextMenu 的命令参数绑定到 ListBox 的选定项

WPF绑定第二个ListBox与第一个ListBox中的选定项目相关

WPF ListBox 横向排列

WPF:如何在调整大小后保持 ListBox SelectedItem 可见?

wpf listbox横向布局

WPF中ListBox滚动时的缓动效果