У меня есть набор объектов, который заполняется от LINQ, и у меня есть потребность получить доступ к одноуровневому объекту (дата), который будет установлен от уровня UI. Так как я не знаю дату в то время, когда сбор данных заполняется, мне нужен хороший способ получить доступ к свойству даты от каждого из объектов в наборе. Вот моя структура класса, разделенная вниз:
public class TestClass
{
public DateTime MyDate;
public List<MySite_ReportResult> Items { get; set; }
}
Подводя итоги, для каждого "MySite_ReportResult", я хочу смочь получить доступ к "MyDate". У кого-либо есть хорошее предложение, которое является лучшей практикой? Этот набор будет в конечном счете связан с сеткой, таким образом, я буду создавать частичный класс и добавлять дополнительное свойство на основе того, каково значение DateTime.
Создайте класс UIDateAndReport , который будет заключать в оболочку My_SiteReportResult и ] Дата .
Код выглядит следующим образом:
public class TestClass
{
public DateTime Date { get; set; }
public IEnumerable<My_SiteReportResult> Reports {get;set;}
}
public class UIDateAndReport
{
public DateTime Date { get; set; }
public My_SiteReportResult Report { get; set; }
}
TestClass tst = new TestClass();
...
var DatedReports =
(from r in tst.Reports
select new UIDateAndReport { Date = tst.Date, Report = r });
В итоге вы получите IEnumerable {наслаждайтесь}
Может ли это помочь?
...
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 текущего элемента в вашем коде.
Надеюсь, это поможет.
Спасибо