powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / listManagers или BindingManagerBase Collection.
6 сообщений из 6, страница 1 из 1
listManagers или BindingManagerBase Collection.
    #32606029
Paul Chabinsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите можно ли получить из объекта BindingContext получить listManagers
его при отладке видно :)
Хочу сделать следующее... у меня есть форма, я хочу в форме сделать метод который бы забирал позиции всех биндингов в массив... это можно легко сделать если получить доступ к приватному полю listManagers...
Что бы получилось что-то вроде this.BindingContext.listManagers.... %)
...
Рейтинг: 0 / 0
listManagers или BindingManagerBase Collection.
    #32606036
Артем1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если только через Reflection попробовать.
...
Рейтинг: 0 / 0
listManagers или BindingManagerBase Collection.
    #32606059
Paul Chabinsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а как пользоваться то рефлекшеном?
...
Рейтинг: 0 / 0
listManagers или BindingManagerBase Collection.
    #32606208
Артем1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вот, к примеру, из MSDN выдержка.
Тебе надо поиграться с флагами BindingFlags в методе
myType.GetFields(BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public);

Там есть флаг и для private полей


Код: plaintext
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.
[C#] 
using System;
using System.Reflection;

public class FieldInfoClass
{
    public int myField1 =  0 ;
    protected string myField2 = null;
    public static void Main()
    {
        FieldInfo[] myFieldInfo;
        Type myType = typeof(FieldInfoClass);
        // Get the type and fields of FieldInfoClass.
        myFieldInfo = myType.GetFields(BindingFlags.NonPublic | BindingFlags.Instance
            | BindingFlags.Public);
        Console.WriteLine("\nThe fields of " + 
            "FieldInfoClass are \n");
        // Display the field information of FieldInfoClass.
        for(int i =  0 ; i < myFieldInfo.Length; i++)
        {
            Console.WriteLine("\nName            : {0}", myFieldInfo[i].Name);
            Console.WriteLine("Declaring Type  : {0}", myFieldInfo[i].DeclaringType);
            Console.WriteLine("IsPublic        : {0}", myFieldInfo[i].IsPublic);
            Console.WriteLine("MemberType      : {0}", myFieldInfo[i].MemberType);
            Console.WriteLine("FieldType       : {0}", myFieldInfo[i].FieldType);
            Console.WriteLine("IsFamily        : {0}", myFieldInfo[i].IsFamily);
        }
    }
}
...
Рейтинг: 0 / 0
listManagers или BindingManagerBase Collection.
    #32606225
Артем1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У класса FieldInfo есть методы GetValue и SetValue.
...
Рейтинг: 0 / 0
listManagers или BindingManagerBase Collection.
    #32606873
Paul Chabinsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посматрите что палучилось... может есть какие заковырки...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
private Hashtable GetCurrencyManagers(System.Windows.Forms.Form f)
{
	Hashtable res = new Hashtable();
	Hashtable listManagers = typeof(System.Windows.Forms.BindingContext).GetField(
		"listManagers",
		System.Reflection.BindingFlags.NonPublic|System.Reflection.BindingFlags.Instance
	).GetValue(f.BindingContext) as Hashtable;
	foreach(System.WeakReference wr in listManagers.Values)
	{
		CurrencyManager cm = (CurrencyManager)wr.Target;
		res.Add(cm, cm.Position);
	}
	return res;
}
...
Hashtable listManagers = this.GetCurrencyManagers(this);
this.ReloadData(); //В этом методе делается .Clear()
foreach(CurrencyManager cm in listManagers.Keys)
{
	cm.Position = (int)listManagers[cm];
}
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / listManagers или BindingManagerBase Collection.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]