Hello,
I am looking to achieve something like this
<igDP:XamDataGrid.FieldLayoutSettings>
basically, for each row we have our setting to display like BG/FG colors, Font style etc. so instead of writing three/four converters which get applied for one row I was thinking if we could achieve something like above where we assign styles based on data in the row.
Please help.
It seems to compile and everything, it just doesn't the break point in the converter.
public object Convert(object value, Type targetType,object parameter, CultureInfo culture){
if (value == null) return Binding.DoNothing;
TransactionViewModel model = value as TransactionViewModel;
if (model==null)return Binding.DoNothing;
Style style = new Style();
style.Setters.Add(
new Setter(DataRecordCellArea.BackgroundProperty, Brushes
.Red ));
return style;
}
I am just checking the progress of this issue and was wondering if you managed to achieve your goal or if you need any further assistance on the matter.
Hello Stefan,
Thanks for your response. I think I am unable to explain my problem properly. Let me try now.
What happens is in our app we allow user to create their own style for rows (so we can not hardcode these in xaml) lets say a user has set following styles (another user can have different style for same rules)1. State=Canceled => will have Background Red and Foreground White and Bold2. State=New and Date < today =>BG=Blue and FG=Black3. State=Newe and Date=Today =>BG = White and FG=BlackI understand that one way would be to set these in Style <Style TargetType="{x:Type igDP:DataRecordPresenter}"> <Setter Property="Background" Value="{Converter BGcolorSelector}"/> <Setter Property="Foreground" Value="{Converter FGcolorSelector}"/></Style>
I was looking something different so that I could bind the Style object itself, exposed as property by the Record in the collectionsomething like
<XamDatGrid DataSource="{Binding}"><igDP:XamDataGrid.FieldLayoutSettings ><igDP:FieldLayoutSettings DataRecordPresenterStyleSelector="{my:RecordStyleConverter}" /></igDP:XamDataGrid.FieldLayoutSettings>
</XamDataGrid>I need to know what do I need to write for my:RecordStyleConverter so that whole of the style gets assigned via converter or via a property exposed by the object.
I hope this makes my problem more clear.
RegardsVish
Hello Vish,
I am just checking if you got this worked out or you still require any assistance or clarification on the matter.
Once again I didn't recieve the notification email for your earlier email. I will look at the solution and will come back to you.
ThanksVish
When you have time please look at it and let me know if you need further clarifications on this matter.
Looking forward for your reply.
Thanks for your solution it works. I am now able to set BG/Fg for the rows.But for some reason it just gives me an error when I try to set the Font Style. I will send the exact exception tomorrow if I can't figure out myself.
Also, there is one more thing, How can I create columns of the data grid from codebehind or may by by some binding. When I create columns using following code grid just appears without any columns.
I am not sure what I am doing wrong in this case.
var
fld = new FieldLayout();fld.IsDefault = true;
foreach(GridColumn column in Columns){ fld.Fields.Add(new Field (column.ColumnName,column.HeaderName)); }grdDataGrid.FieldLayouts.Add(fld);
I suggest you add UnboundFields once you have you Fieldlayout initialized and bound them to the Properties of your underlying data. Here it is explained in details about the UnboundFields:
http://help.infragistics.com/NetAdvantage/WPF/2011.2/CLR4.0/?page=InfragisticsWPF4.DataPresenter.v11.2~Infragistics.Windows.DataPresenter.UnboundField.html
Hope this helps you.