다음 쿼리는 GridView에 바인딩 할 수있는 <IGrouping<string, ItemsCollection>>
유형을 반환합니다. CollectionViewSource
과 함께 사용하면 키 (그룹 이름으로)는 그룹 헤더/제목을 표시하는 데 사용됩니다 (예 :의 TextBlock에 바인딩하여 GridView 용).<IGrouping <string, ItemsCollection >>의 그룹화 키가 바인딩에 대한 그룹 수 정보와 함께 추가되도록 수정할 수 있습니까?
var query = from ItemObj in ItemsObjCollection
orderby ItemObj.ItemName
group ItemObj by ItemObj.GroupName into groups
orderby groups.Key
select groups;
모든 예상대로 잘 작동하고 문제없이 지금까지된다.
내 다음 시도 (문제가있는 곳)는 그룹 항목 수를 제공하는 그룹 이름을 출력하는 Key (예 : "Group Name [count]")와 같은 Key에 대한 것입니다. count는 쿼리에서 groups.Count()로 쉽게 얻을 수 있습니다. ItemsObjCollection
이 Fruits를 나타내면, 헤더 출력은 Apples [10], Bananas [7], Oranges [12] 등과 같은 것이 바람직합니다.
출력 표시 (바인딩을 통한)를 위해 그룹화 키를 설명한대로 그룹 수 정보가 추가되도록 수정할 수 있습니까? 기본적으로, 나는 Key = $"{groups.Key} [{groups.Count()}]"
을 원하지만 쿼리 내에서 어떻게되는지 모른다.
select new { Key = $"{groups.Key} [{groups.Count()}]", Items = groups };
을하지만 내 수정 키는 지금까지하지 않았다, 바인딩에 표시되지 않습니다의 라인을 따라했습니다. 또한 그게 바로 인터페이스이기 때문에 IGrouping
의 인스턴스를 만드는 것이 쉽지 않으며 위의 쿼리 문에서이를 수행하는 영리한 방법이 있기를 바랍니다. 누군가 이미이 작업을 수행 했어야합니다.
문자열과 정수가 결합되어 있으므로 다음을 시도하십시오. select new {Key = groups.Key + groups.Count(). ToString(), Items = groups}; – jdweng
그렇지 않습니다. 난 그냥 C# 6.0의 최신 문자열 보간 구문을 사용하고 그래서 당신이 말하고 무슨 말을 동등한 무엇입니까. 문자열 보간 기인 $ "{var} ..."을 참조하십시오. – user2921851
귀하의 질의는 정상입니다. 바인딩은 어떻게됩니까? –