LongListSelector获取选定的索引
本文关键字:索引 获取 LongListSelector | 更新日期: 2023-09-27 18:14:15
是否有办法从LongListSelector控件获得特定元素的索引?我想删除用户选择的对象,但似乎没有一个简单的方法来做到这一点。LongListSelector的数据源(ObservableCollection)可以包含重复项,所以如果我在它上面调用remove,那么它只会删除它遇到的第一个实例,而不是用户选择的那个。
我可以使用ObservableCollection的RemoveAt方法,但我似乎无法从LongListSelector中获得索引,以便我可以将其作为RemoveAt方法的参数。
不确定这是否会对你有帮助,但如果你在应用程序中使用整体MVVM方法,你通常会为列表中的每个项目提供一个视图模型。这样,您就可以在项目视图模型上定义一个IsSelected
属性,并将其数据绑定到LongListSelector
控件。然后,当您需要删除项目时,您只需找到IsSelected
设置为true
的所有项目。
/// <summary>
/// Is this location selected in the UI?
/// </summary>
public bool Selected
{
get { return _selected; }
set
{
if ( value != _selected )
{
_selected = value;
RaisePropertyChanged( "Selected" );
}
}
}
然后在我的XAML项目模板中,我有一个像这样的复选框控件绑定:
<CheckBox Grid.Column="0" Grid.RowSpan="2" IsChecked="{Binding Path=Selected,Mode=TwoWay}"
VerticalAlignment="Top" Margin="0,-10,0,0"/>