Как устанавливается свойство DataGridViewCell.Datagridview? - PullRequest
0 голосов
/ 02 апреля 2012

Свойство DatagridviewCell.Datagridview доступно только для чтения.То же самое относится и к другим элементам сетки данных со ссылкой Datagridview, таким как строки и столбцы.Тем не менее, каким-то образом, когда вы добавляете / удаляете элементы из сетки данных, это свойство правильно устанавливается за кулисами, поэтому между ссылками родительского блока данных на его элементы никогда не возникает никаких противоречий, и наоборот.

Как datagridview выполняет это?Я пытаюсь сделать что-то подобное сам.Единственный известный мне трюк состоит в том, чтобы поместить определение коллекции в определение класса или наоборот, чтобы элемент или коллекция имели доступ к закрытым полям других пользователей, но при рассмотрении пространств имен datagridview это выглядит не так..

1 Ответ

0 голосов
/ 02 апреля 2012

DateGridView использует «внутренний» модификатор доступа.Как вы, наверное, знаете, есть 4 различных модификатора доступа.

public    string MyPetPeeve
private   string MyPetPeeve
protected string MyPetPeeve
internal  string MyPetPeeve

Вот краткий обзор поведения модификаторов доступа:

public: MyPetPeeve доступен всем, кто хочет знать.

private: MyPetPeeve is onlyдоступный из класса или структуры, которая его содержит.

protected: MyPetPeeve доступен для класса или структуры, которая его содержит.ПЛЮС, любой класс, производный от MyPetPeeves, содержащий класс.

internal: MyPetPeeve доступен для любого класса или структуры, существующих в той же сборке.Например, DataGridView существует в сборке System.Windows.Forms, поэтому любой класс или структура, найденные в System.Windows.Forms, могут изменять свойство DatagridviewCell.Datagridview.Для всех, кто находится за пределами System.Windows.Forms, в данном случае: вы, похоже, являетесь частным лицом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...