0

我使用 MVVM 和 ListBox 的 ItemsSource 绑定 ListCollectionView 类型。

如何获取 ListCollectionView 的 currentItem 我想在 SelectionMode="Multiple" 上获取 ListBox 的 Last SelectedItem

目前,我可以得到第一个 selectItem 是 ListCollectionView 的 currentItem ,但不能得到最后一个 SelectedItem 是 ListCollectionView 的 currentItem 。

谁能帮我?或者告诉我一些解决方案。

谢谢帮助。

4

1 回答 1

1

您可以使用 Prism 的行为:

public class LastSelectionBehavior:Behavior<ListBox>
{
    private ICollectionView _itemsSource;

    protected override void OnAttached()
    {
        base.OnAttached();

        _itemsSource = AssociatedObject.ItemsSource as ICollectionView;

        if (_itemsSource != null)
            AssociatedObject.SelectionChanged += AssociatedObjectSelectionChanged;
    }

    void AssociatedObjectSelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        if (e.AddedItems.Count > 0)
            _itemsSource.MoveCurrentTo(e.AddedItems[0]);
    }
}

xml:

    <ListBox ItemsSource="{Binding Path=NamesView}" SelectionMode="Multiple">
        <i:Interaction.Behaviors>
            <local:LastSelectionBehavior/>
        </i:Interaction.Behaviors>
    </ListBox>
于 2013-08-05T13:07:58.793 回答