(1)
Когда вы не позволяете DataForm автоматически генерировать поля, у вас есть больший контроль над полями и вы можете устанавливать метки вручную:
<tkt:DataForm AutoGenerateFields="False" AutoEdit="True">
<tkt:DataForm.EditTemplate>
<DataTemplate>
<StackPanel>
<tkt:DataField Label="SomeLabel:">
<TextBox Text="{Binding SomeProperty, Mode=TwoWay}" />
</tkt:DataField>
[...]
</StackPanel>
</DataTemplate>
</tkt:DataForm.EditTemplate>
</tkt:DataForm>
(2)
Если вам нужна функция автоматической генерации, но вам также нужно больше контроля над отображением полей, вы можете обернуть DataForm в свой собственный элемент управления.Вам нужно будет реализовать самогенерацию самостоятельно, чтобы создать свой собственный шаблон EditTemplate, который вы назначите для DataForm.Это путь, по которому я пошел.
(3)
Еще один быстрый и грязный способ - перебирать визуальное дерево после того, как DataForm отобразит, чтобы изменить метки.Это довольно просто с небольшой помощью инструментария:
// needs System.Windows.Controls.Toolkit.dll
using System.Linq;
using System.Windows.Controls.Primitives;
foreach (var field in myDataForm.GetVisualDescendents().OfType<DataField>())
{
field.Label = field.Label + ":";
}
(4)
Наконец, я только что увидел, что в DataForm есть событие AutoGeneratingField, которое может работать (не проверено):
myDataForm.AutoGeneratingField += (sender, e) => e.Field.Label = e.Field.Label + ":";