2016-07-15 4 views
1

Мне нужно связать список объектов класса, который мне нужен, чтобы быть internal, поскольку он никогда не будет использоваться за пределами этого файла .cs.Связывание списка внутреннего объекта с DataGridView

internal class DataGridViewItems 
{ 
    internal string Id{ get; set; } 
    internal string Description{ get; set; } 
    internal double Value{ get; set; } 
    internal string Reference {get;set;} 
}; 

Есть ли способ связать это с DataGridView? Он работает только, если я положил все на Public

+0

Прост: вы * не * нуждаетесь в том, чтобы это было 'internal'. Вам нужно, чтобы это было «публично». –

+0

Не могли бы вы объяснить мне это? Почему это нужно публично? – SilentRage47

+2

Вам нужно, чтобы оно было общедоступным, потому что «оно работает, только если я стану всем публично». Поэтому, если вам нужно, чтобы он работал, вам нужно, чтобы оно было общедоступным. –

ответ

1

Есть ли способ привязать это к DataGridView?

Конечно - сделать классinternal но сделать свойстваpublic. Таким образом, DataGridView по-прежнему будет обнаруживать публичные свойства путем отражения, когда он создает/связывает столбцы, но класс не будет напрямую доступен вне сборки.

Мне нужно быть внутренним, так как он никогда не будет использоваться за пределами этого файла .cs.

Обратите внимание, что internal делает класс видимым для всех типов в пределах одной и той же сборки, а не только что CS файл. Похоже, что вы хотите, это класс, который является частным для класса, который его создает/использует:

public class MyView 
{ 
    private class DataGridViewItems 
    { 
     public string Id{ get; set; } 
     public string Description{ get; set; } 
     public double Value{ get; set; } 
     public string Reference {get;set;} 
    }; 
} 
+0

Настройка доступа к ресурсу никогда не используется ». Я не знаю, что это проблема. Class как Private работает, но Resharper дает мне совет по поводу получения свойства с помощью« Автоматически реализованной » – SilentRage47

Смежные вопросы