Customizing Data Fields
The DataForm provides flexible API for customizing the UI of its data fields.
The component allows you to replace the automatically created panel with data fields and also the labels of the fields.
Custom Style
You can customize the auto-generated data fields by using the DataFieldStyle
property of the DataForm.
Set the DataFieldStyle
<telerik:RadDataForm>
<telerik:RadDataForm.DataFieldStyle>
<Style TargetType="telerik:DataFormDataField">
<Setter Property="Foreground" Value="#F5CC84" />
<Setter Property="LabelTemplate">
<Setter.Value>
<DataTemplate>
<TextBlock Text="{Binding}" FontWeight="Bold" FontStyle="Italic"/>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
</telerik:RadDataForm.DataFieldStyle>
</telerik:RadDataForm>
Custom Content
To control the UI of each DataForm page, set the ReadOnlyTemplate
and EditTemplate
properties. The ReadOnlyTemplate
is used when the component is in its normal state and the EditTemplate
is used when the current item is in edit mode.
You can also replace the content of the DataForm when adding a new item by setting the NewItemTemplate
property in the same manner as ReadOnlyTemplate
and EditTemplate
.
The following example shows a possible way to use the ReadOnlyTemplate
and EditTemplate
properties.
Set ReadOnlyTemplate and EditTemplate
<telerik:RadDataForm AutoGenerateFields="False">
<telerik:RadDataForm.ReadOnlyTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="Personal information:" FontWeight="Bold" Margin="0 10 0 0" Foreground="#d1cab8"/>
<telerik:DataFormDataField Margin="15 0 0 0" Label="Name" LabelPosition="Beside" IsReadOnly="True" DataMemberBinding="{Binding Name, Mode=TwoWay}" />
<TextBlock Text="Settings:" FontWeight="Bold" Margin="0 10 0 0" Foreground="#d1cab8"/>
<telerik:DataFormCheckBoxField Margin="10 0 0 0" Label="Checked" IsReadOnly="True" LabelPosition="Beside" DataMemberBinding="{Binding IsChecked, Mode=TwoWay}" />
<telerik:DataFormDateField Margin="15 0 0 0" Label="Date" IsReadOnly="True" LabelPosition="Beside" DataMemberBinding="{Binding Date, Mode=TwoWay}" />
</StackPanel>
</DataTemplate>
</telerik:RadDataForm.ReadOnlyTemplate>
<telerik:RadDataForm.EditTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="Personal information:" FontWeight="Bold" Margin="0 10 0 0" Foreground="#FBBC05"/>
<telerik:DataFormDataField Margin="15 0 0 0" Label="Name" LabelPosition="Beside" DataMemberBinding="{Binding Name, Mode=TwoWay}" />
<TextBlock Text="Settings:" FontWeight="Bold" Margin="0 10 0 0" Foreground="#FBBC05"/>
<telerik:DataFormCheckBoxField Margin="10 0 0 0" Label="Checked" LabelPosition="Beside" DataMemberBinding="{Binding IsChecked, Mode=TwoWay}" />
<telerik:DataFormDateField Margin="15 0 0 0" Label="Date" LabelPosition="Beside" DataMemberBinding="{Binding Date, Mode=TwoWay}" />
</StackPanel>
</DataTemplate>
</telerik:RadDataForm.EditTemplate>
</telerik:RadDataForm>
Custom Labels
The DataForm allows you to customize the labels of its data fields. To customize all labels in the component globally, set the LabelPosition
and LabelStyle
properties. LabelPosition
accepts the Above
(default) and Beside
values.
Set the Label Position
<telerik:RadDataForm LabelPosition="Beside">
Set the Label Style
<telerik:RadDataForm>
<telerik:RadDataForm.LabelStyle>
<Style TargetType="TextBlock">
<Setter Property="Foreground" Value="Green"/>
</Style>
</telerik:RadDataForm.LabelStyle>
</telerik:RadDataForm>
LabelPosition
and LabelTemplate
properties of the corresponding DataFormDataField
.
Set the Label Template
<telerik:DataFormDataField>
<telerik:DataFormDataField.LabelTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" Foreground="Green"/>
</DataTemplate>
</telerik:DataFormDataField.LabelTemplate>
</telerik:DataFormDataField>