Доступ к свойству брата из коллекции - PullRequest
1 голос
/ 13 августа 2010

У меня есть коллекция элементов, которая заполняется из LINQ, и у меня есть потребность в доступе к элементу-брату (дате), который будет установлен на уровне пользовательского интерфейса.Поскольку я не знаю дату на момент заполнения сбора данных, мне нужен хороший способ доступа к свойству даты для каждого элемента коллекции.Ниже приведена структура моего класса:

public class TestClass
{
    public DateTime MyDate;
    public List<MySite_ReportResult> Items { get; set; }
}

Подводя итог, я хочу иметь доступ к «MyDate» для каждого «MySite_ReportResult».У кого-нибудь есть хорошее предложение, которое является лучшей практикой?Эта коллекция в конечном итоге будет привязана к сетке, поэтому я буду создавать частичный класс и добавлять дополнительное свойство в зависимости от значения DateTime.

Ответы [ 2 ]

1 голос
/ 13 августа 2010

Создайте UIDateAndReport класс, который обернет My_SiteReportResult и Date .

Код выглядит следующим образом:

<code>public class TestClass
{
    public DateTime Date { get; set; }
    public IEnumerable<My_SiteReportResult> Reports {get;set;}
}</p>

<p>public class UIDateAndReport
{
    public DateTime Date { get; set; }
    public My_SiteReportResult Report { get; set; }
}</p>

<p>TestClass tst = new TestClass();
...
var DatedReports =
        (from r in tst.Reports
         select new UIDateAndReport { Date = tst.Date, Report = r });
В итоге вы получите IEnumerable , который можно привязать к своему пользовательскому интерфейсу через ObservableCollection или CollectionView.

{наслаждайтесь}

1 голос
/ 13 августа 2010

Может ли это помочь?

...

List<DatedReportResult> list = new List<DatedReportResult>();

foreach (var drs in list) {
   drs.ReportDateTime ..
}

...

class DatedReportResult {
   public DateTime ReportDateTime;

   /* Properties of original ReportResult class */
   ....
}

И наоборот, для пользовательского интерфейса вы можете связать список, использовать BindingSource и получить доступ к свойству ReportDateTime текущего элемента в своем коде.

Надеюсь, это поможет.

Спасибо

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