Данная статья переведена с помощью средств машинного перевода. Чтобы просмотреть ее на английском языке, установите флажок Английский. Вы также можете просматривать английский текст во всплывающем окне, наводя указатель мыши на переведенный текст.
Перевод
Английский

Класс BindingSource

 

Опубликовано: Октябрь 2016

Инкапсулирует источник данных для формы.

Пространство имен:   System.Windows.Forms
Сборка:  System.Windows.Forms (в System.Windows.Forms.dll)


[ComplexBindingPropertiesAttribute("DataSource", "DataMember")]
public class BindingSource : Component, IBindingListView, IBindingList, 
	IList, ICollection, IEnumerable, ITypedList, ICancelAddNew, 
	ISupportInitializeNotification, ISupportInitialize, ICurrencyManagerProvider

ИмяОписание
System_CAPS_pubmethodBindingSource()

Инициализирует новый экземпляр BindingSource класса к значениям по умолчанию.

System_CAPS_pubmethodBindingSource(IContainer)

Инициализирует новый экземпляр BindingSource и добавляет BindingSource в указанный контейнер.

System_CAPS_pubmethodBindingSource(Object, String)

Инициализирует новый экземпляр BindingSource класса с указанным источником данных и члена данных.

ИмяОписание
System_CAPS_pubpropertyAllowEdit

Возвращает или задает значение, указывающее, разрешено ли редактирование элементов в базовом списке.

System_CAPS_pubpropertyAllowNew

Возвращает или задает значение, указывающее, является ли AddNew метод может использоваться для добавления элементов в список.

System_CAPS_pubpropertyAllowRemove

Возвращает значение, указывающее, разрешено ли удаление элементов из базового списка.

System_CAPS_protpropertyCanRaiseEvents

Возвращает значение, указывающее, может ли компонент вызывать событие.(Наследуется от Component.)

System_CAPS_pubpropertyContainer

Возвращает IContainer содержащий Component.(Наследуется от Component.)

System_CAPS_pubpropertyCount

Возвращает общее число элементов в базовом списке, принимая текущего Filter значение во внимание.

System_CAPS_pubpropertyCurrencyManager

Возвращает диспетчер денежных единиц, связанный с этим BindingSource.

System_CAPS_pubpropertyCurrent

Возвращает текущий элемент в списке.

System_CAPS_pubpropertyDataMember

Возвращает или задает список в источнике данных, к которому в настоящий момент привязан соединитель.

System_CAPS_pubpropertyDataSource

Возвращает или задает источник данных, к которому привязан соединитель.

System_CAPS_protpropertyDesignMode

Возвращает значение, указывающее, является ли Component в настоящее время находится в режиме конструктора.(Наследуется от Component.)

System_CAPS_protpropertyEvents

Возвращает список обработчиков событий, которые прикреплены к этому Component.(Наследуется от Component.)

System_CAPS_pubpropertyFilter

Возвращает или задает выражение, используемое для фильтрации просматриваемых строк.

System_CAPS_pubpropertyIsBindingSuspended

Возвращает значение, указывающее, приостановлена ли привязка списка.

System_CAPS_pubpropertyIsFixedSize

Возвращает значение, указывающее, имеет ли базовый список фиксированный размер.

System_CAPS_pubpropertyIsReadOnly

Возвращает значение, указывающее, является ли базовый список доступным только для чтения.

System_CAPS_pubpropertyIsSorted

Возвращает значение, указывающее, сортируются ли элементы в базовом списке.

System_CAPS_pubpropertyIsSynchronized

Возвращает значение, указывающее, является ли доступ к коллекции синхронизированным (потокобезопасным).

System_CAPS_pubpropertyItem[Int32]

Возвращает или задает элемент списка по указанному индексу.

System_CAPS_pubpropertyList

Возвращает список, к которому привязан соединитель.

System_CAPS_pubpropertyPosition

Возвращает или задает индекс текущего элемента в базовом списке.

System_CAPS_pubpropertyRaiseListChangedEvents

Возвращает или задает значение, указывающее, является ли ListChanged вызова события.

System_CAPS_pubpropertySite

Возвращает или задает ISite из Component.(Наследуется от Component.)

System_CAPS_pubpropertySort

Возвращает или задает имена столбцов, используемые для сортировки, и порядок сортировки для просмотра строк в источнике данных.

System_CAPS_pubpropertySortDescriptions

Возвращает коллекцию описаний сортировки, применяемой к источнику данных.

System_CAPS_pubpropertySortDirection

Возвращает направление сортировки элементов в списке.

System_CAPS_pubpropertySortProperty

Этот API поддерживает инфраструктуру продукт, и его не следует использовать напрямую из кода. Возвращает PropertyDescriptor который используется для сортировки списка.

System_CAPS_pubpropertySupportsAdvancedSorting

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

System_CAPS_pubpropertySupportsChangeNotification

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

System_CAPS_pubpropertySupportsFiltering

Возвращает значение, указывающее, поддерживает ли источник данных фильтрацию.

System_CAPS_pubpropertySupportsSearching

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

System_CAPS_pubpropertySupportsSorting

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

System_CAPS_pubpropertySyncRoot

Возвращает объект, который может быть использован для синхронизации доступа к базовому списку.

ИмяОписание
System_CAPS_pubmethodAdd(Object)

Добавляет существующий элемент во внутренний список.

System_CAPS_pubmethodAddNew()

Добавляет новый элемент в базовый список.

System_CAPS_pubmethodApplySort(ListSortDescriptionCollection)

Сортирует источник данных, используя заданные описания сортировки.

System_CAPS_pubmethodApplySort(PropertyDescriptor, ListSortDirection)

Сортирует источник данных, используя заданный дескриптор свойства и направление сортировки.

System_CAPS_pubmethodCancelEdit()

Отменяет текущую операцию редактирования.

System_CAPS_pubmethodClear()

Удаляет все элементы из списка.

System_CAPS_pubmethodContains(Object)

Определяет, является ли объект элементом списка.

System_CAPS_pubmethodCopyTo(Array, Int32)

Копирует содержимое List в указанный массив, начиная с указанного значения индекса.

System_CAPS_pubmethodCreateObjRef(Type)

Создает объект, который содержит все необходимые сведения, необходимые для создания прокси-сервер, используемый для обмена данными с удаленным объектом.(Наследуется от MarshalByRefObject.)

System_CAPS_pubmethodDispose()

Освобождает все ресурсы, занятые модулем Component.(Наследуется от Component.)

System_CAPS_protmethodDispose(Boolean)

Освобождает неуправляемые ресурсы, используемые объектом BindingSource, а при необходимости освобождает также управляемые ресурсы.(Переопределяет Component.Dispose(Boolean).)

System_CAPS_pubmethodEndEdit()

Применяет ожидающие изменения к базовому источнику данных.

System_CAPS_pubmethodEquals(Object)

Определяет, равен ли заданный объект текущему объекту.(Наследуется от Object.)

System_CAPS_protmethodFinalize()

Освобождает неуправляемые ресурсы и выполняет другие операции очистки, перед тем как объект Component будет удален при сборке мусора.(Наследуется от Component.)

System_CAPS_pubmethodFind(PropertyDescriptor, Object)

Выполняет поиск индекса элемента с заданным дескриптором свойства.

System_CAPS_pubmethodFind(String, Object)

Возвращает индекс элемента в списке, имеющего заданное имя свойства и значение.

System_CAPS_pubmethodGetEnumerator()

Получает перечислитель для List.

System_CAPS_pubmethodGetHashCode()

Служит хэш-функцией по умолчанию.(Наследуется от Object.)

System_CAPS_pubmethodGetItemProperties(PropertyDescriptor[])

Извлекает массив PropertyDescriptor списка тип источника объектов, представляющих привязываемые свойства данных.

System_CAPS_pubmethodGetLifetimeService()

Извлекает объект текущее время существования службы, который управляет политикой времени существования данного экземпляра.(Наследуется от MarshalByRefObject.)

System_CAPS_pubmethodGetListName(PropertyDescriptor[])

Возвращает имя списка, предоставляющего данные для привязки.

System_CAPS_pubmethodGetRelatedCurrencyManager(String)

Возвращает связанный диспетчер денежных единиц для заданного элемента данных.

System_CAPS_protmethodGetService(Type)

Возвращает объект, представляющий службу, предоставляемую классом Component или классом Container.(Наследуется от Component.)

System_CAPS_pubmethodGetType()

Возвращает объект Type для текущего экземпляра.(Наследуется от Object.)

System_CAPS_pubmethodIndexOf(Object)

Осуществляет поиск указанного объекта и возвращает индекс первого вхождения в пределах списка.

System_CAPS_pubmethodInitializeLifetimeService()

Получает объект службы времени существования для управления политикой времени существования для этого экземпляра.(Наследуется от MarshalByRefObject.)

System_CAPS_pubmethodInsert(Int32, Object)

Вставляет элемент в список по указанному индексу.

System_CAPS_protmethodMemberwiseClone()

Создает неполную копию текущего объекта Object.(Наследуется от Object.)

System_CAPS_protmethodMemberwiseClone(Boolean)

Создает неполную копию текущего MarshalByRefObject объекта.(Наследуется от MarshalByRefObject.)

System_CAPS_pubmethodMoveFirst()

Переходит к первому элементу в списке.

System_CAPS_pubmethodMoveLast()

Переходит к последнему элементу в списке.

System_CAPS_pubmethodMoveNext()

Переходит к следующему элементу в списке.

System_CAPS_pubmethodMovePrevious()

Переходит к предыдущему элементу в списке.

System_CAPS_protmethodOnAddingNew(AddingNewEventArgs)

Вызывает событие AddingNew.

System_CAPS_protmethodOnBindingComplete(BindingCompleteEventArgs)

Вызывает событие BindingComplete.

System_CAPS_protmethodOnCurrentChanged(EventArgs)

Вызывает событие CurrentChanged.

System_CAPS_protmethodOnCurrentItemChanged(EventArgs)

Вызывает событие CurrentItemChanged.

System_CAPS_protmethodOnDataError(BindingManagerDataErrorEventArgs)

Вызывает событие DataError.

System_CAPS_protmethodOnDataMemberChanged(EventArgs)

Вызывает событие DataMemberChanged.

System_CAPS_protmethodOnDataSourceChanged(EventArgs)

Вызывает событие DataSourceChanged.

System_CAPS_protmethodOnListChanged(ListChangedEventArgs)

Вызывает событие ListChanged.

System_CAPS_protmethodOnPositionChanged(EventArgs)

Вызывает событие PositionChanged.

System_CAPS_pubmethodRemove(Object)

Удаляет заданный элемент из списка.

System_CAPS_pubmethodRemoveAt(Int32)

Удаляет элемент по указанному индексу из списка.

System_CAPS_pubmethodRemoveCurrent()

Удаляет текущий элемент из списка.

System_CAPS_pubmethodRemoveFilter()

Удаляет фильтр, связанный с BindingSource.

System_CAPS_pubmethodRemoveSort()

Удаляет сортировку, связанный с BindingSource.

System_CAPS_pubmethodResetAllowNew()

Этот API поддерживает инфраструктуру продукт, и его не следует использовать напрямую из кода. Повторно инициализирует AllowNew свойство.

System_CAPS_pubmethodResetBindings(Boolean)

Вызывает в элементе управления, привязанном к компоненту BindingSource, повторное считывание всех элементов списка и обновление их отображаемых значений.

System_CAPS_pubmethodResetCurrentItem()

Вызывает в элементе управления, привязанный к BindingSource повторное считывание выбранного элемента и обновление его отображаемого значения.

System_CAPS_pubmethodResetItem(Int32)

Вызывает в элементе управления, привязанный к BindingSource повторное считывание элемента по указанному индексу и обновление его отображаемого значения.

System_CAPS_pubmethodResumeBinding()

Возобновляет привязку данных.

System_CAPS_pubmethodSuspendBinding()

Приостанавливает действие привязки данных, чтобы предотвратить обновление привязанного источника данных в результате изменений.

System_CAPS_pubmethodToString()

Возвращает String содержащее имя Component, если таковые имеются. Этот метод не следует переопределять.(Наследуется от Component.)

ИмяОписание
System_CAPS_pubeventAddingNew

Происходит перед добавлением элемента в базовый список.

System_CAPS_pubeventBindingComplete

Происходит, когда все клиенты привязаны к этому BindingSource.

System_CAPS_pubeventCurrentChanged

Происходит при изменении элемента, к которому имеется привязка.

System_CAPS_pubeventCurrentItemChanged

Происходит, когда значение свойства Current измененное свойство.

System_CAPS_pubeventDataError

Происходит, когда исключение, связанное с автоматически обрабатывается объектом BindingSource.

System_CAPS_pubeventDataMemberChanged

Происходит, если значение свойства DataMember было изменено.

System_CAPS_pubeventDataSourceChanged

Происходит, если значение свойства DataSource было изменено.

System_CAPS_pubeventDisposed

Происходит при удалении компонента путем вызова Dispose метод.(Наследуется от Component.)

System_CAPS_pubeventListChanged

Происходит при изменении базового списка или элемента в списке.

System_CAPS_pubeventPositionChanged

Происходит после изменения значения Position измененное свойство.

ИмяОписание
System_CAPS_pubinterfaceSystem_CAPS_priveventISupportInitializeNotification.Initialized

Происходит при BindingSource инициализируется.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIBindingList.AddIndex(PropertyDescriptor)

Добавляет PropertyDescriptor к индексам, используемым для поиска.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIBindingList.RemoveIndex(PropertyDescriptor)

Удаляет System.ComponentModel.PropertyDescriptor из индексов, используемых для поиска.

System_CAPS_pubinterfaceSystem_CAPS_privmethodICancelAddNew.CancelNew(Int32)

Удаляет незафиксированный новый элемент из коллекции.

System_CAPS_pubinterfaceSystem_CAPS_privmethodICancelAddNew.EndNew(Int32)

Фиксирует незафиксированный новый элемент в коллекции.

System_CAPS_pubinterfaceSystem_CAPS_privmethodISupportInitialize.BeginInit()

Сигналы BindingSource о начале инициализации.

System_CAPS_pubinterfaceSystem_CAPS_privmethodISupportInitialize.EndInit()

Сигналы BindingSource о завершении инициализации.

System_CAPS_pubinterfaceSystem_CAPS_privpropertyISupportInitializeNotification.IsInitialized

Возвращает значение, указывающее, инициализирован ли объект BindingSource.

ИмяОписание
System_CAPS_pubmethodAsParallel()

Перегружен. Позволяет осуществлять параллельный запрос.(Определено ParallelEnumerable.)

System_CAPS_pubmethodAsQueryable()

Перегружен. Преобразует IEnumerable для IQueryable.(Определено Queryable.)

System_CAPS_pubmethodCast<TResult>()

Приводит элементы IEnumerable для указанного типа.(Определено Enumerable.)

System_CAPS_pubmethodOfType<TResult>()

Фильтрует элементы IEnumerable на основе указанного типа.(Определено Enumerable.)

BindingSource Компонент выполняет многие функции. Во-первых он упрощает привязку элементов управления в форме к данным, предоставляя управления, уведомления об изменениях и другие службы, между элементами управления Windows Forms и источниками данных. Это достигается путем присоединения BindingSource компонент источника данных с помощью DataSource свойство. Для сложных привязке можно дополнительно задать DataMember Свойства для определенного столбца или списка в источнике данных. Затем привязать элементы управления к BindingSource. Все последующие взаимодействия с данными, осуществляется посредством вызовов к BindingSource компонента. Примеры того, как BindingSource может упростить процесс привязки см. в разделе Практическое руководство. Специальная обработка значений DBNull при связывании элементов управления с данными в Windows Forms и Практическое руководство. Обработка ошибок и исключений, происходящих при связывании элементов управления с данными. Переход и обновление источника данных осуществляется с помощью методов такие как MoveNext, MoveLast, и Remove. Операции, такие как сортировка и фильтрация обрабатываются с помощью Sort и Filter Свойства. Дополнительные сведения об использовании сортировки и фильтрации с BindingSource, в разделе Практическое руководство. Сортировка и фильтрация данных ADO.NET с помощью компонента BindingSource в Windows Forms.

Кроме того BindingSource компонент может действовать как строго типизированный источник данных. Обычно тип базового источника данных задается один из следующих способов:

  • Используйте Add метод, чтобы добавить элемент в BindingSource компонента.

  • Задать DataSource Свойства в список, один объект или тип.

В обоих случаях создание строго типизированный список. Дополнительные сведения о том, как использовать BindingSource для привязки к типу, в разделе Практическое руководство. Связывание элемента управления с типом в Windows Forms. Можно также использовать BindingSource для привязки элементов управления к объекту фабрики. Дополнительные сведения см. в разделе Практическое руководство. Связывание элемента управления с объектом-фабрикой в Windows Forms.

System_CAPS_noteПримечание

Поскольку BindingSource дескрипторы и источники данных простых и сложных, терминологии проблематичным. В документации по этому классу термин списке относится к набору данных в размещенном источнике данных, и элемент обозначает одиночный элемент. Если речь идет о функциях, связанный со сложными источниками данных, эквивалентных терминов таблицы и строки используются.

BindingSource предоставляет элементы для доступа к данным. Текущий элемент можно извлечь с помощью Current можно получить через свойство и весь список List свойство. Операции редактирования, поддерживаются на текущем элементе через Current и RemoveCurrent, EndEdit, CancelEdit и Add и AddNew методы. Несмотря на то, что управления обрабатывается автоматически для всех базовых типов источников данных, этот класс предоставляет ряд событий, таких как CurrentItemChanged и DataSourceChanged, который индивидуальную настройку.

Источники данных, привязанных к BindingSource компонента можно также переход и управляемых с помощью BindingNavigator класс, предоставляющий подобный Видеомагнитофона пользовательский интерфейс (UI) для перемещения элементов в списке. Хотя BindingNavigator может быть привязано к любому источнику данных, он был разработан для интеграции с BindingSource компонентом через его BindingNavigator.BindingSource свойство.

Свойство по умолчанию для BindingSource класс DataSource. Событие по умолчанию CurrentChanged.

System_CAPS_cautionВнимание!

  Многие элементы BindingSource класс оперируют базового списка, представленного List свойство и просто найти свои операции в базовый список. Таким образом, когда BindingSource привязан к пользовательской реализации IList, точное поведение этих элементов может отличаться от поведения, описанного в документации класса. Например RemoveAt вызовы метода IList.RemoveAt. BindingSource Документация описывает RemoveAt метод понять, RemoveAt метод для базового IList правильно реализована.

В следующем примере кода показано ListBox привязан к BindingSource. BindingSource Привязан к BindingList<T> содержащий список шрифтов.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace BindingSourceExamples
{
    public class Form1 : Form
    {
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.Run(new Form1());
        }

        public Form1()
        {
            this.Load += new EventHandler(Form1_Load);
        }

        private TextBox textBox1;
        private Button button1;
        private ListBox listBox1;

        private BindingSource binding1;
        void Form1_Load(object sender, EventArgs e)
        {
            listBox1 = new ListBox();
            textBox1 = new TextBox();
            binding1 = new BindingSource();
            button1 = new Button();
            listBox1.Location = new Point(140, 25);
            listBox1.Size = new Size(123, 160);
            textBox1.Location = new Point(23, 70);
            textBox1.Size = new Size(100, 20);
            textBox1.Text = "Wingdings";
            button1.Location = new Point(23, 25);
            button1.Size = new Size(75, 23);
            button1.Text = "Search";
            button1.Click += new EventHandler(this.button1_Click);
            this.ClientSize = new Size(292, 266);
            this.Controls.Add(this.button1);
            this.Controls.Add(this.textBox1);
            this.Controls.Add(this.listBox1);

            MyFontList fonts = new MyFontList();
            for (int i = 0; i < FontFamily.Families.Length; i++)
            {
                if (FontFamily.Families[i].IsStyleAvailable(FontStyle.Regular))
                    fonts.Add(new Font(FontFamily.Families[i], 11.0F, FontStyle.Regular));
            }
            binding1.DataSource = fonts;
            listBox1.DataSource = binding1;
            listBox1.DisplayMember = "Name";

        }


        private void button1_Click(object sender, EventArgs e)
        {
            if (binding1.SupportsSearching != true)
                MessageBox.Show("Cannot search the list.");
            else
            {
                int foundIndex = binding1.Find("Name", textBox1.Text);
                if (foundIndex > -1)
                    listBox1.SelectedIndex = foundIndex;
                else
                    MessageBox.Show("Font was not found.");
            }
        }
    }

    public class MyFontList : BindingList<Font>
    {

        protected override bool SupportsSearchingCore
        {
            get { return true; }
        }
        protected override int FindCore(PropertyDescriptor prop, object key)
        {
            // Ignore the prop value and search by family name.
            for (int i = 0; i < Count; ++i)
            {
                if (Items[i].FontFamily.Name.ToLower() == ((string)key).ToLower())
                    return i;

            }
            return -1;
        }


    }

}

.NET Framework
Доступно с 2.0

Любые открытые статические элементы ( Предоставлен общий доступ в Visual Basic) этого типа являются потокобезопасными. Потокобезопасность элементов экземпляров не гарантируется.

Вернуться в начало
Показ: