그룹 요약 필드를 정렬해야합니다.Xaml Infragistics 그리드에서 요약 그룹 요약
Ex. 그리드에 3 개의 열이 있습니다.
1 단계 : 그룹별로 ID 열을 끌어 ID별로 그룹화했습니다.
2 단계 : 합계, 개수, 평균을 열에 추가합니다.
이제 총계를 정렬하거나 개수 또는 평균을 클릭하여 전체 그룹화가 100,200,300과 같은 합계로 정렬되도록하고 싶습니다.
그룹화 필드의 사용자 지정 IComparer를 만들어
그룹 요약 필드를 정렬해야합니다.Xaml Infragistics 그리드에서 요약 그룹 요약
Ex. 그리드에 3 개의 열이 있습니다.
1 단계 : 그룹별로 ID 열을 끌어 ID별로 그룹화했습니다.
2 단계 : 합계, 개수, 평균을 열에 추가합니다.
이제 총계를 정렬하거나 개수 또는 평균을 클릭하여 전체 그룹화가 100,200,300과 같은 합계로 정렬되도록하고 싶습니다.
그룹화 필드의 사용자 지정 IComparer를 만들어
정렬 순서가 FieldSettings 클래스의 GroupByComparer에 의해 제어되며,이 수행 할 수 있습니다 도와주세요. 그룹화는 사실 일종의 정렬이기 때문에 컬럼이 처음 그룹화 될 때 디폴트 정렬이 여전히 발생하기를 원한다고 가정합니다.
다음 예제에서 그룹 별 레코드는 클릭 할 때 단일 요약 결과로 정렬 할 수 있습니다. 이 작업은 설정되어
public class SummarySortComparer : IComparer
{
public int Compare(object x, object y)
{
GroupByRecord xRecord = x as GroupByRecord;
GroupByRecord yRecord = y as GroupByRecord;
IComparable xValue = xRecord.Value as IComparable;
object yValue = yRecord.Value;
if (xRecord.Tag != null)
{
xValue = xRecord.Tag as IComparable;
yValue = yRecord.Tag;
}
return xValue.CompareTo(yValue);
}
}
: 이것은이 설정되어있는 경우 설정되어 있지 않은 경우 태그의 값으로 정렬 그룹에 대한 사용자 지정 IComparer를 사용하여 수행 하였다는 기록에 의해 다시 그룹의 값 떨어진다 그리드 사용하여 다음 :
this.XamDataGrid1.FieldSettings.GroupByComparer = new SummarySortComparer();
일이 있다면 클릭 한 요약 정보를 얻을 수있는 그리드의 PreviewMouseLeftButtonDown를 사용하고 요약의 값으로 기록하여 그룹의 태그를 설정하고 정렬을 새로 고침 그리드의 :
void XamDataGrid1_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
SummaryResultPresenter summaryResultPresenter =
Utilities.GetAncestorFromType(e.OriginalSource as DependencyObject, typeof (SummaryResultPresenter), false) as
SummaryResultPresenter;
if (summaryResultPresenter != null)
{
GroupBySummariesPresenter groupBySummariesPresenter =
Utilities.GetAncestorFromType(summaryResultPresenter,
typeof(GroupBySummariesPresenter), false) as GroupBySummariesPresenter;
if (groupBySummariesPresenter != null)
{
SummaryResult summaryResult = summaryResultPresenter.SummaryResult;
int summaryResultIndex = summaryResult.ParentCollection.IndexOf(summaryResult);
foreach (GroupByRecord groupRecord in groupBySummariesPresenter.GroupByRecord.ParentCollection)
{
groupRecord.Tag = groupRecord.ChildRecords.SummaryResults[summaryResultIndex].Value;
}
this.XamDataGrid1.Records.RefreshSort();
}
}
}
이 예제에는 몇 가지 제한 사항이 있으므로 사용자가 원하는대로 요약 정보를 정렬 할 수 있도록 구현하지 않았다는 점에 유의하십시오. 또한 정렬 방향을 변경하는 논리를 포함하지 않았고 필드가 현재 정렬되어있는 방향을 사용했습니다. 방향을 업데이트하려는 경우 추가해야합니다.
답장을 보내 주셔서 감사합니다. 그러나 이것은 실제로 양방향 Asc/Desc.Please 기능을 얻는 방법에 대한 조언이 필요합니다. –
후속 클릭에 대해 정렬을 변경하는 기능을 구현하려면 정렬을 이미 완료했는지 알 수 있도록 추적을 추가해야하며 정렬 방향을 적절히 설정해야합니다. 프로그래밍 방식으로 필드 정렬 및 그룹화에 대한 자세한 내용은 다음을 참조하십시오. http://help.infragistics.com/doc/WPF/Current/CLR4.0/?page=xamDataGrid_Sorting_And_Grouping_Fields_Programmatically.html 제공되는 것은 그리드의 종류를 다시 적용하고 정렬 기준을 알 수있는 방법을 보여주는 것 뿐이며 필요에 맞게 확장 할 수 있습니다. – alhalama
안녕하세요 alhalama 귀하의 회신은 Infragistics 4m https : // www.infragistics.com/my-account/support-case/CAS-128937-R2K0X6에 요청한 다른 내 스레드와 같습니다. –