7 Answers, 1 is accepted
You could find it through the DataType property of the bound column. Have you tried this?
Greetings,Didie
the Telerik team
Explore the entire Telerik portfolio by downloading Telerik DevCraft Ultimate.
((Telerik.Windows.Controls.GridViewDataColumn)radGridView.Columns[0]).DataType
Thanks anyway.
Is it possible to set a custom attribute on my data, and read that same attribute from the DataType property in my OnAutoGeneratingColumn event handler?
My initial tests show that the name and type are correct, but I see no attributes that I had added.
How have you set a custom attribute? Basically, RadGridView respects Data Annotations and you can try this. You can check the following msdn article:
Using Data Annotations to Customize Data Classes.
Regards,
Dimitrina
Telerik
First off, I apologize, this was meant for the WPF forum, but I posted too quickly. Please move it if you need to.
I am using some of the DataAnnotations attributes, and they work wonderfully. My hope was to set which properties would aggregate with a format string with a custom attribute. Something like below.
[Display(Name =
"Trade Amount"
)]
[DisplayFormat(DataFormatString =
"{0:C}"
)]
[DisplayAggregate(AggregateFunction.Sum, ResultFormatString =
"Total: {0:C}"
)]
[DisplayAggregate(AggregateFunction.Min, ResultFormatString =
"Min: {0:C}"
)]
public
double
Amount {
get
;
set
; }
I actually got this working after posting, but it is a bit of a workaround. In the AutoGeneratingColumn event, I match the column name against the RadGridView item and pull the attributes from there, not the column.datatype. But if there is a more elegant solution, I wouldn't mind changing my existing work.
Cheers.
private
void
ResultsGridView_OnAutoGeneratingColumn(
object
sender, GridViewAutoGeneratingColumnEventArgs e)
{
var column = e.Column
as
GridViewDataColumn;
if
(column ==
null
|| ResultsGridView.Items.Count == 0)
return
;
var propName = column.DataMemberBinding.Path.Path;
var props = ResultsGridView.Items[0].GetType().GetProperties();
var aggregates = (from prop
in
props where prop.Name == propName select (DisplayAggregate[]) prop.GetCustomAttributes(
typeof
(DisplayAggregate),
false
)).FirstOrDefault();
AddAggregatesToGridColumn(aggregates, column);
}
As it turns out there is not a more elegant way to propose.
Regards,
Dimitrina
Telerik