2
// IListStoreBackend.cs
5
// Lluis Sanchez <lluis@xamarin.com>
6
// Eric Maupin <ermau@xamarin.com>
8
// Copyright (c) 2011-2012 Xamarin, Inc.
10
// Permission is hereby granted, free of charge, to any person obtaining a copy
11
// of this software and associated documentation files (the "Software"), to deal
12
// in the Software without restriction, including without limitation the rights
13
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14
// copies of the Software, and to permit persons to whom the Software is
15
// furnished to do so, subject to the following conditions:
17
// The above copyright notice and this permission notice shall be included in
18
// all copies or substantial portions of the Software.
20
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
30
namespace Xwt.Backends
33
/// A ListStore backend.
35
public interface IListStoreBackend: IListDataSource, IBackend
37
// WARNING: You don't need to implement this backend.
38
// Xwt provides a default implementation.
39
// You only need to implement it if the underlying widget
40
// toolkit has its own list store implementation which
41
// can be plugged into a ListView or ComboBox
44
/// Initializes the backend with the given <paramref name="columnTypes"/>.
46
/// <param name="columnTypes">The data types of the columns for this list store.</param>
47
/// <exception cref="ArgumentNullException"><paramref name="columnTypes"/> is <c>null</c>.</exception>
48
void Initialize (Type[] columnTypes);
51
/// Adds a new row and returns the index.
53
/// <returns>The index of the newly added row.</returns>
57
/// Inserts a new row after <paramref name="row"/> and returns the index.
59
/// <param name="row">The index of the row to insert a new row after.</param>
60
/// <returns>The index of the newly added row.</returns>
61
/// <exception cref="ArgumentOutOfRangeException">
62
/// <paramref name="row"/> is >= <see cref="IListDataSource.RowCount" />
64
int InsertRowAfter (int row);
67
/// Inserts a new row before <paramref name="row"/> and returns the index.
69
/// <param name="row">The index of the row to insert a new row before.</param>
70
/// <returns>The index of the newly added row.</returns>
71
/// <exception cref="ArgumentOutOfRangeException">
72
/// <paramref name="row"/> is >= <see cref="IListDataSource.RowCount" />
74
int InsertRowBefore (int row);
77
/// Removes a row at the given index (<paramref name="row"/>).
79
/// <param name="row">The index of the row to remove.</param>
80
/// <exception cref="ArgumentOutOfRangeException">
81
/// <paramref name="row"/> is >= <see cref="IListDataSource.RowCount" />
83
void RemoveRow (int row);