summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Core/ITemplatedItemsList.cs
blob: ded42597727a9a768287091ee2fba1a3e15fc7e9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.ComponentModel;
using System.Collections;

namespace Xamarin.Forms
{
	public interface ITemplatedItemsList<TItem> : IReadOnlyList<TItem>, INotifyCollectionChanged where TItem : BindableObject
	{
		event NotifyCollectionChangedEventHandler GroupedCollectionChanged;
		event PropertyChangedEventHandler PropertyChanged;

		object BindingContext { get; }
		string Name { get; set; }
		TItem HeaderContent { get; }
		IEnumerable ItemsSource { get; }
		IReadOnlyList<string> ShortNames { get; }

		IListProxy ListProxy { get; }

		DataTemplate SelectDataTemplate(object item);
		int GetGlobalIndexForGroup(ITemplatedItemsList<TItem> group);
		int GetGlobalIndexOfItem(object item);
		ITemplatedItemsList<TItem> GetGroup(int index);
		Tuple<int, int> GetGroupAndIndexOfItem(object item);
		Tuple<int, int> GetGroupAndIndexOfItem(object group, object item);
		int GetGroupIndexFromGlobal(int globalIndex, out int leftOver);
		int IndexOf(TItem item);
		TItem UpdateContent(TItem content, int index);
		TItem UpdateHeader(TItem content, int groupIndex);
	}
}