DataGridView C # - PullRequest
       12

DataGridView C #

2 голосов
/ 27 января 2011

Я быстро объясню на примере, что я ищу.

Скажем, у меня есть класс Employee

public class Employee
{
     int empId;
     string empName;
     Currency salaryCurrency;
     string address;
     decimal salaryAmnt;
}
public class Currency
{
     string currencyCode;
     string currencyName;
     int numberOfDecimals;
     ....
     ....
}
public class Employees : Collection<Employee>
{
   public Employees GetEmployees();
}

В моей форме у меня есть DataGridView dgResult, который должен отображать employeeName, salaryAmount и currencyName.(в пределах класса Валюта).

У меня два вопроса:

1) Сложность, с которой я сталкиваюсь, заключается в том, как ссылаться на свойство в классе Currency.Как я хочу название валюты.

2) Как заставить мой DataGridView отображать только эти 3 столбца.Я назначил источник данных представления «Сетка данных» для коллекции «Сотрудники», возвращенной функцией GetEmployees.

dgResult.DatSource = new Employees().GetEmployees();

Я работаю в приложении Windows.

Ответы [ 3 ]

1 голос
/ 27 января 2011

Я всегда использую это решение, но я хотел бы знать, есть ли альтернатива:

class Employee
{

   public Currency Currency
   {
    get
     {
       return m_Currency;
      }
   }

   public string CurrencyName
   {
     get
       {
        return this.Currency.Name;
       }
   }
}

Затем вы привяжете столбец сетки к CurrencyName

Я использовал сетки впрошлое, которое может принимать отображаемый элемент как «Currency.Name».У меня никогда не получалось, чтобы это работало с DataGridView, но если кто-то может сказать, как это сделать, то, пожалуйста, дайте мне знать!

Чтобы показать только три столбца, вам нужно настроить gridview, чтобы он не генерировал автоматически столбцы, а затем указатькаждый столбец

1 голос
/ 27 января 2011

Я стремлюсь реализовать класс как:

 public class EmployeeView {
   private readonly Employee e;
   public EmployeeView(Employee e) { this.e = e; }
   public int Id {get {return e.empId; }}
   public string Name {get {return e.empName; }}
   public string Currency {get {return e.salaryCurrency.currencyName; }}
   // ...
 }

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

0 голосов
/ 27 января 2011

Самое простое решение, которое я могу придумать, - позволить вашему докладчику предложить коллекцию EmployeeData, которая содержит именно ту информацию, которая вам нужна.

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