我想填充一個下拉與特定的對象,我已經做了精細的公共屬性。但是現在,當用戶從下拉列表中選擇值時,我希望它按該列對數據庫表結果進行分組。我曾嘗試使用LINQ,但我只能弄清楚如何通過實例變量屬性顯式分組,而不是通過反射屬性。這是我的方法 - 傳入的參數是屬性的字符串名稱。例如,如果用戶想要通過Customer.Country進行分組,那麼它將是「國家」,如果用戶想要通過Customer.State進行分組,則它將是「狀態」。但此刻我已經硬編碼到由「國家」集團,因爲我無法弄清楚如何使用我的LINQ查詢LINQ組通過查詢使用反射屬性名
private void DisplayReportAction(string category)
{
if (!string.IsNullOrEmpty(category))
{
SelectedCategory = category;
_summaries.Clear();
foreach (var custGroup in _customerInterface.CustomerInterface.GetAllCustomers().GroupBy(c => c.State)
.Select(group => new
{
Category = group.Key,
Count = group.Count()
})
.OrderBy(x => x.Category))
{
_summaries.Add(new CustomerReportSummaryViewModel(custGroup.Category, custGroup.Count));
}
ReportVisibility = Visibility.Visible;
}
}
這很好用一個修改。上面的代碼將返回屬性對象,如果您通過屬性名稱進行分組,則可以使用屬性名稱的標籤在單個存儲桶中返回所有內容。爲了得到這個工作,你需要通過條款,使羣 「.GroupBy(C => c.GetType()的getProperty(類別).GetValue(C,NULL))」 – NZJames
@ user1122909,我明白了,你是對的,更新了答案,謝謝! –