or
| public class CallItem |
| { |
| private DateTime callDateTime; |
| public DateTime CallDateTime |
| { |
| get { return callDateTime; } |
| set { callDateTime = value; } |
| } |
| private String calledNumber; |
| public String CalledNumber |
| { |
| get { return calledNumber; } |
| set { calledNumber = value; } |
| } |
| private String logicCall; |
| public String LogicCall |
| { |
| get { return logicCall; } |
| set { logicCall = value; } |
| } |
| private Int64 callDuration; |
| public Int64 CallDuration |
| { |
| get { return callDuration; } |
| set { callDuration = value; } |
| } |
| private Double costWithTaxes; |
| public Double CostWithTaxes |
| { |
| get { return costWithTaxes; } |
| set { costWithTaxes = value; } |
| } |
| private Double costWithDiscount; |
| public Double CostWithDiscount |
| { |
| get { return costWithDiscount; } |
| set { costWithDiscount = value; } |
| } |
| private String abonentNumber; |
| public String AbonentNumber |
| { |
| get { return abonentNumber; } |
| set { abonentNumber = value; } |
| } |
| public CallItem(String abonentNumber, DateTime callDateTime, Int64 callDuration, String calledNumber, Double costWithDiscount, Double costWithTaxes, String logicCall) |
| { |
| this.abonentNumber = abonentNumber; |
| this.callDateTime = callDateTime; |
| this.callDuration = callDuration; |
| this.calledNumber = calledNumber; |
| this.costWithDiscount = costWithDiscount; |
| this.costWithTaxes = costWithTaxes; |
| this.logicCall = logicCall; |
| } |
| } |
| List<CallItem> items = GetAllItems(); |
| dataGridView.ItemsSource = items; |
| dataGridView.CreateFilterDescriptions(); |
And when I (or user) drag and dropping column (for example AbonentNumber) on grouping panel I need to waiting about 35 seconds.
if I heed to waiting about 35 seconds when I need grouping 1500 records then how long I need to waiting if I must grouping about 15000 records or 150000 records?
How i can increase performance of grouping in GridView? Or may be for my task I dont need to use GridView and grouping?
| System.Windows.Media.Animation Warning: 6 : Unable to perform action because the specified Storyboard was never applied to this object for interactive control.; Action='Stop'; Storyboard='System.Windows.Media.Animation.Storyboard'; Storyboard.HashCode='14445493'; Storyboard.Type='System.Windows.Media.Animation.Storyboard'; TargetElement='Telerik.Windows.Controls.GridView.GridViewExpandableRow'; TargetElement.HashCode='14788679'; TargetElement.Type='Telerik.Windows.Controls.GridView.GridViewExpandableRow' |
| System.Windows.Media.Animation Warning: 6 : Unable to perform action because the specified Storyboard was never applied to this object for interactive control.; Action='Stop'; Storyboard='System.Windows.Media.Animation.Storyboard'; Storyboard.HashCode='14445493'; Storyboard.Type='System.Windows.Media.Animation.Storyboard'; TargetElement='Telerik.Windows.Controls.GridView.GridViewRow'; TargetElement.HashCode='1651401'; TargetElement.Type='Telerik.Windows.Controls.GridView.GridViewRow' |
| dataGridView.GroupDescriptions.Clear(); |
| Telerik.Windows.Data.RadGroupDescription desc = new Telerik.Windows.Data.RadGroupDescription("LogicCall"); |
| Telerik.Windows.Data.SumFunction funcCallDuration = new Telerik.Windows.Data.SumFunction("CallDuration", "CallDuration", "Duration:"); |
| desc.AggregateFunctions.Add(funcCallDuration); |
| dataGridView.GroupDescriptions.Add(desc); |
| public class mF : Telerik.Windows.Data.SumFunction |
| { |
| public mF() |
| { |
| } |
| public mF(string propertyName, string calculationField, string caption) |
| { |
| base.Name = propertyName; |
| base.SourceField = calculationField; |
| base.Caption = caption; |
| } |
| private String GetTime(Decimal totalSeconds) |
| { |
| Int32 hours = (Int32)Math.Floor((double)totalSeconds / (double)3600); |
| Int32 minutes = (Int32)Math.Floor((double)(totalSeconds - (hours * 3600)) / (double)60); |
| Int32 seconds = (Int32)totalSeconds - (hours * 3600) - (minutes * 60); |
| return hours.ToString() + ":" + minutes.ToString() + ":" + seconds.ToString(); |
| } |
| public override Telerik.Windows.Data.AggregateResult Calculate(Telerik.Windows.Data.GroupRecord targetGroup) |
| { |
| Telerik.Windows.Data.AggregateResult result = base.Calculate(targetGroup); |
| result.Value = GetTime(Convert.ToDecimal(result.Value, System.Globalization.CultureInfo.CurrentCulture)); |
| return result; |
| } |
| } |