可观察集合和列表视图 xamarin 表单的索引



拼命地试图获取列表视图的索引,该索引由来自单独视图模型类的可观察集合提供。

在我的主页中,它包含列表视图XAML(称为"主列表"(,我有OnitemSelected方法,该方法需要给我索引。

到目前为止,我已经尝试了所有方法,但没有任何运气。

这是唯一适用的代码,但它也给了我空引用解释:

int index = (mainlist.ItemsSource as List<MainListItem>).IndexOf(e.SelectedItem as MainListItem);

说 对象引用未设置为对象的实例。

我在这里错过了什么?

这是我的主视图模型.cs它创建了可观察集合

private ObservableCollection<MainListItem> _list;
public ObservableCollection<MainListItem> List
{
get { return _list; }
set
{
_list = value;
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(List)));
}
}

最终,我通过循环浏览整个列表并计算我自己的索引来解决它,如下所示: 我知道一定有更好的方法,但由于我的列表相对较小,这对我很有帮助。

int index = 0;
int i = 1;
foreach (MainListItem itemtocheck in mainlist.ItemsSource as ObservableCollection<MainListItem>)
{
if(itemtocheck == e.SelectedItem)
{
index = i;
Debug.WriteLine("Index is " + index);
break;
}
else
{
Debug.WriteLine("No match for index at " + i);
i++;
}
}

最新更新