Hello,
I would like to know how to set 2 groups in a radgridview adding 3 sum functions in the second group.
I must admit I cannot do it....
Thanks a lot....
Nick
For better details what I try to do is in the following code
in the radgridview of this XAML code I have to programmatically add two groups,the second of which must also make 3 sum funtions.
Following examples I have found in this site I have written this code
It happens that the first time I bind data in the radgrid view the groups are duplicated.
The first does not contains the sum values, the second yes.
The second time an exception is thrown.
Hope this details help you to help me...
Bye
I would like to know how to set 2 groups in a radgridview adding 3 sum functions in the second group.
I must admit I cannot do it....
Thanks a lot....
Nick
For better details what I try to do is in the following code
<telerik:RadGridView x:Name="radGridInvoiceDetails" ShowGroupPanel="False" AutoGenerateColumns="False" Height="245" Width="920" ItemsSource="{Binding}" HorizontalAlignment="Center" DataLoadMode="Asynchronous"> |
<telerik:RadGridView.Columns> |
<telerik:GridViewDataColumn Header="ProductFamily" DataMemberBinding="{Binding ProductFamilyDescription}" IsReadOnly="True" IsFilterable="False" HeaderTextAlignment="Center" Width="Auto" IsVisible="False"/> |
<telerik:GridViewDataColumn Header="Prodotto" DataMemberBinding="{Binding ProductDescription}" IsReadOnly="True" IsFilterable="False" HeaderTextAlignment="Center" Width="Auto" IsVisible="False"/> |
<telerik:GridViewDataColumn Header="Numero" DataMemberBinding="{Binding BillNumberString}" IsReadOnly="True" IsFilterable="False" HeaderTextAlignment="Center" Width="50" TextAlignment="Right"/> |
<telerik:GridViewDataColumn Header="Data" DataMemberBinding="{Binding BillDate}" IsReadOnly="True" IsFilterable="False" HeaderTextAlignment="Center" Width="50" DataFormatString="{}{0:dd/MM/yyyy}"/> |
<telerik:GridViewDataColumn Header="Qta" DataMemberBinding="{Binding ProductQuantity}" IsReadOnly="True" IsFilterable="False" HeaderTextAlignment="Center" Width="50" DataFormatString="{}{0:N2}" TextAlignment="Right"/> |
<telerik:GridViewDataColumn Header="Prz.Uni" DataMemberBinding="{Binding ProductFee}" IsReadOnly="True" IsFilterable="False" HeaderTextAlignment="Center" Width="50" DataFormatString="{}{0:N2}" TextAlignment="Right"/> |
<telerik:GridViewDataColumn Header="Tot.Prod" DataMemberBinding="{Binding ProductTotal}" IsReadOnly="True" IsFilterable="False" HeaderTextAlignment="Center" Width="75" DataFormatString="{}{0:N2}" TextAlignment="Right"/> |
<telerik:GridViewDataColumn Header="Scontato" DataMemberBinding="{Binding ProductDiscountedTotal}" IsReadOnly="True" IsFilterable="False" HeaderTextAlignment="Center" Width="75" DataFormatString="{}{0:N2}" TextAlignment="Right"/> |
<telerik:GridViewDataColumn Header="Trasporto" DataMemberBinding="{Binding TransportTotal}" IsReadOnly="True" IsFilterable="False" HeaderTextAlignment="Center" Width="75" DataFormatString="{}{0:N2}" TextAlignment="Right"/> |
<telerik:GridViewDataColumn Header="Scontato" DataMemberBinding="{Binding TransportDiscountedTotal}" IsReadOnly="True" IsFilterable="False" HeaderTextAlignment="Center" Width="75" DataFormatString="{}{0:N2}" TextAlignment="Right"/> |
<telerik:GridViewDataColumn Header="Sconto totale" DataMemberBinding="{Binding TotalDiscountAmount}" IsReadOnly="True" IsFilterable="False" HeaderTextAlignment="Center" Width="75" DataFormatString="{}{0:N2}" TextAlignment="Right"/> |
<telerik:GridViewDataColumn Header="Imponibile" DataMemberBinding="{Binding TotalBill}" IsReadOnly="True" IsFilterable="False" HeaderTextAlignment="Center" Width="75" DataFormatString="{}{0:N2}" TextAlignment="Right"/> |
<telerik:GridViewDataColumn Header="IVA" DataMemberBinding="{Binding VATString}" IsReadOnly="True" IsFilterable="False" HeaderTextAlignment="Center" Width="50" TextAlignment="Right"/> |
<telerik:GridViewDataColumn Header="Totale" DataMemberBinding="{Binding TotalVAT}" IsReadOnly="True" IsFilterable="False" HeaderTextAlignment="Center" Width="100" DataFormatString="{}{0:N2}" TextAlignment="Right"/> |
<telerik:GridViewDataColumn x:Name="columnView" IsFilterable="False" IsSortable="False" Width="40" IsReadOnly="True"> |
<telerik:GridViewColumn.CellTemplate> |
<DataTemplate> |
<telerik:RadButton x:Name="buttonView" Click="buttonView_Click" Background="White" BorderBrush="White" Loaded="buttonView_Loaded"> |
<Image Height="20" Width="20" Source="/Raise.FarinaEzio.SIB.Client.Management.GUI.BusinessManagement.Controls;component/Images/Edit.png"/> |
<Button.ToolTip> |
<StackPanel Orientation="Horizontal"> |
<Image Source="/Raise.FarinaEzio.SIB.Client.Management.GUI.BusinessManagement.Controls;component/Images/Edit.png"/> |
<Label Content="Visualizza la bolla"/> |
</StackPanel> |
</Button.ToolTip> |
</telerik:RadButton> |
</DataTemplate> |
</telerik:GridViewColumn.CellTemplate> |
</telerik:GridViewDataColumn> |
</telerik:RadGridView.Columns> |
<!--<telerik:RadGridView.GroupDescriptors> |
<telerik:GroupDescriptor Member="ProductFamilyDescription" SortDirection="Ascending"/> |
<telerik:GroupDescriptor Member="ProductDescription" SortDirection="Ascending" /> |
</telerik:RadGridView.GroupDescriptors>--> |
</telerik:RadGridView> |
in the radgridview of this XAML code I have to programmatically add two groups,the second of which must also make 3 sum funtions.
Following examples I have found in this site I have written this code
private void InitInvoiceDetails() |
{ |
try |
{ |
radGridInvoiceDetails.SelectedItem = null; |
radGridInvoiceDetails.ItemsSource = null; |
radGridInvoiceDetails.GroupDescriptors.Clear(); |
if (CurrentMaster != null) |
{ |
var collection = from d in dc.InvoiceDetails |
where d.IdInvoiceMaster == CurrentMaster.Id |
orderby d.IdProductType, d.ProductDescription, d.BillNumber |
select d; |
radGridInvoiceDetails.ItemsSource = collection.ToList(); |
} |
GroupDescriptor descriptor = new Telerik.Windows.Data.GroupDescriptor(); |
descriptor.Member = "ProductFamilyDescription"; |
descriptor.DisplayContent = "Famiglia"; |
descriptor.SortDirection = ListSortDirection.Ascending; |
radGridInvoiceDetails.GroupDescriptors.Add(descriptor); |
descriptor = new Telerik.Windows.Data.GroupDescriptor(); |
var sumFunction = new Telerik.Windows.Data.SumFunction(); |
sumFunction.ResultFormatString = "{0:N2}"; |
sumFunction.SourceField = "ProductQuantity"; |
sumFunction.Caption = "Totale Quantità "; |
descriptor.AggregateFunctions.Add(sumFunction); |
sumFunction = new Telerik.Windows.Data.SumFunction(); |
sumFunction.ResultFormatString = "{0:N2}"; |
sumFunction.SourceField = "TotalBill"; |
sumFunction.Caption = "Totale Imponibile"; |
descriptor.AggregateFunctions.Add(sumFunction); |
sumFunction = new Telerik.Windows.Data.SumFunction(); |
sumFunction.ResultFormatString = "{0:N2}"; |
sumFunction.SourceField = "TotalVAT"; |
sumFunction.Caption = "Totale Con IVA"; |
descriptor.AggregateFunctions.Add(sumFunction); |
descriptor.Member = "ProductDescription"; |
descriptor.DisplayContent = "Prodotto"; |
descriptor.SortDirection = ListSortDirection.Ascending; |
radGridInvoiceDetails.GroupDescriptors.Add(descriptor); |
} |
catch (Exception ex) |
{ |
throw ex; |
} |
} |
It happens that the first time I bind data in the radgrid view the groups are duplicated.
The first does not contains the sum values, the second yes.
The second time an exception is thrown.
System.ArgumentException was unhandled by user code |
Message="The value \"[Group: Key=RCK 25.0 S3 F.FULLER NO; ItemCount=1; HasSubgroups=False; ParentGroup=null];\" is not of type \"Raise.FarinaEzio.SIB.Client.Management.DataContext.InvoiceDetail\" and cannot be used in this generic collection.\r\nParameter name: value" |
Source="mscorlib" |
ParamName="value" |
StackTrace: |
at System.ThrowHelper.ThrowWrongValueTypeArgumentException(Object value, Type targetType) |
at System.Collections.Generic.List`1.VerifyValueType(Object value) |
at System.Collections.Generic.List`1.System.Collections.IList.Add(Object item) |
at Telerik.Windows.Data.QueryableCollectionView.PopulateInternalList(IQueryable view) in c:\Builds\WPF_Scrum\Release_WPF\Sources\Development\Core\Data\Collections\QueryableCollectionView.cs:line 482 |
at Telerik.Windows.Data.QueryableCollectionView.<>c__DisplayClassa.<CreateInternalList>b__6(Object s, DoWorkEventArgs e) in c:\Builds\WPF_Scrum\Release_WPF\Sources\Development\Core\Data\Collections\QueryableCollectionView.cs:line 458 |
at System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e) |
at System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument) |
InnerException: |
Hope this details help you to help me...
Bye