Какие элементы управления связаны с моим набором данных? - PullRequest
1 голос
/ 04 декабря 2009

Учитывая экземпляр DataSet, могу ли я узнать, какие элементы управления связаны с его таблицами?

Я хочу остановить все привязки к DataSet, что-то вроде:

foreach (Control cont in dataset.ControlsBoundToMe)
{
    if (cont is DataGrid)
    {
        (cont as DataGrid).DataSource = null;
    }
}

Спасибо

1 Ответ

2 голосов
/ 04 декабря 2009

Ну, я полагаю, вы говорите об элементах управления Winforms.

Затем в каждой форме вы можете получить доступ к свойству BindingContext , которое даст вам диспетчер привязок из определенного источника данных. Если у вас есть этот менеджер, вы можете получить доступ к его коллекции привязок и выполнять итерации по нему.

Псевдокод:

var bindingManager = BindingContext[myDataSet.Tables[0]];
foreach (Binding binding in bindingManager.Bindings)
{
    var dataGrid = binding.Control as DataGrid;
    if (dataGrid != null)
        dataGrid.DataSource = null;
} 
...