Главная » C#, Компоненты » Интерфейсы источника данных

0

В предыдущем разделе мы использовали в качестве источника данных класс, наследованный от класса BindingList. На самом деле источником данных может являться любой класс, реализующий интерфейс iList. Этого вполне достаточно для отображения списка данных. Сейчас я хочу рассказать о некоторых других интерфейсах, доступных для источников данных. Детальный

рассказ о них выходит за рамки разработки компонентов, но общее представление нужно.

Интерфейс IBindingList управляет редактированием данных как простой привязки данных, так и привязки списка данных:

public interface IBindingList : IList, ICollection, IEnuraerable {

// Возвращает true, если источник // данных поддерживает редактирование данных bool AllowEdit { get; }

// Возвращает true, если источник данных поддерживает // добавление новых данных bool AllowNew { get; }

// Возвращает true, если источник данных поддерживает

// удаление данных

bool AllowRemove { get; }

// Возвращает true, если источник данных был отсортирован // с помощью вызова метода ApplySort bool IsSorted { get; }

// Возвращает направление сортировки ListSortDirection.Ascending

// или Ascending.Descending.

ListSortDirection SortDirection { get; }

// Возвращает дескриптор свойства, по которому

// производится сортировка

PropertyDescriptor SortProperty { get; }

// Возвращает true, если при изменении списка

// данных будет вызываться метод ListChanged

bool SupportsChangeNotification { get; }

// Возвращает true, если источник данных поддерживает

// поиск с помощью метода Find

bool SupportsSearching { get; }

// Возвращает true, если источник данных поддерживает сортировку

bool SupportsSorting { get; }

// Вызывается при изменении списка данных

event ListChangedEventHandler ListChanged;

// Добавление индекса для поиска по указанному свойству

void Addlndex{PropertyDescriptor property);

// Добавление нового элемента в список

object AddNew(};

// Сортировка данных по указанному свойству // в указанном направлении

void ApplySort(PropertyDescriptor property, ListSortDirection direction);

// Поиск данных по указанному свойству и значению int Find(PropertyDescriptor property, object key); // Удаляет индекс

void Removelndex(PropertyDescriptor property); // Удаляет сортировку данных void RemoveSort();

}

Интерфейс icanceiAddNew управляет возможностями добавления новых элементов:

public interface ICancelAddNew (

// Отменить добавление нового элемента void CancelNew(int itemlndex); // Завершить добавление нового элемента void EndNew(int itemlndex);

}

Интерфейс IRaiseitemChangedEvents предоставляет событие, вызываемое при изменении списка данных:

public interface IRaiseitemChangedEvents bool RaisesltemChangedEvents { get; }

}

Интерфейс iEditabieObject предоставляет интерфейсы управления редактированием:

public interface IEditabieObject {

// Начало редактирования элемента void BeginEdit();

// Откат результатов редактирования void CancelEdit();

// Сохранение результатов редактирования void EndEdit();

}

Интерфейс ichangeTracking предоставляет механизмы для запроса изменений данных:

public interface IChangeTracking {

// Возвращает true, если данные были изменены bool isChanged { get; }

// Указывает принять изменения данных void AcceptChanges(};

}

Интерфейс iDataErrorinfo предоставляет механизм управления ошибками:

public interface IDataErrorinfo {

// Возвращает строку ошибки или // пустую строку, если ошибок нет string Error { get; }

// Возвращает строку ошибки для каждого свойства // или пустую строку, если ошибок нет string this[string columnName) { get; }

}

Литература:

Агуров П. В. C#. Разработка компонентов в MS Visual Studio 2005/2008. – СПб.: БХВ-Петербург, 2008. — 480 е.: ил.

По теме:

  • Комментарии