我们在使用MVVM Pattern的产品中使用Telerik RadDataForm。我们想使用我们的自定义Commads和Button for Commit和Cancel,为了得到这个,我们引用RadDataFormStyle来设置命令,如图所示。
<StackPanel x:Name="PART_FooterPanel" HorizontalAlignment="Right" Orientation="Horizontal">
<telerik:RadButton x:Name="PART_CommitButton" Content="{TemplateBinding CommitButtonContent}" Command="{Binding Source={StaticResource DataContextProxy}, Path=Data.UpdateItem}" InnerCornerRadius="0" Margin="2,4,4,4" MinWidth="48" MinHeight="20">
<telerik:StyleManager.Theme>
<telerik:Office_BlackTheme/>
</telerik:StyleManager.Theme>
</telerik:RadButton>
<telerik:RadButton x:Name="PART_CancelButton" Content="{TemplateBinding CancelButtonContent}" Command="{Binding Source={StaticResource DataContextProxy},Path=Data.CancelItemUpdate}" InnerCornerRadius="0" Margin="2,4,4,4" MinWidth="48" MinHeight="20">
<telerik:StyleManager.Theme>
<telerik:Office_BlackTheme/>
</telerik:StyleManager.Theme>
</telerik:RadButton>
</StackPanel>
以下是View上定义的Rad Form。 CommandButtonsVisibility =“None”设置为None,因为我们不希望看到正在使用的导航和其他控件。
<telerik:RadDataForm x:Name="DataForm1" CurrentItem="{Binding CurrentLevelItem,UpdateSourceTrigger=PropertyChanged}" Style="{StaticResource RadDataFormStyle1}" DataFieldStyle="{StaticResource DataFormDataFieldStyle1}" AutoEdit="True" CommandButtonsVisibility="None" />
字段是自动生成的,问题是我们想要获取ValidationString(如果不满足文本字段等的条件,则AutoGenerated验证消息绑定到视图模型中的属性等)以显示它根据我们的要求(即在我们的一个自定义工具上显示信息或错误等)。 有没有办法获得验证字符串?。
谢谢,
答案 0 :(得分:0)
获取Validation Summary对象的一种方法是将Invoke Action绑定到事件,如下所示,并将Validation Summary作为命令参数发送到View Model。
<telerik:RadDataForm x:Name="DataForm1"
CurrentItem="{Binding CurrentLevelItem,Mode=TwoWay}"
Style="{StaticResource RadDataFormStyle1}"
DataFieldStyle="{StaticResource DataFormDataFieldStyle1}" AutoEdit="True" CommandButtonsVisibility="None"
ValidationSummaryVisibility="Collapsed" >
<i:Interaction.Triggers>
<i:EventTrigger EventName="KeyUp">
<prism:InvokeCommandAction Command="{Binding ValidationSummaryCmd}" CommandParameter="{Binding ValidationSummary.Errors, ElementName=DataForm1}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</telerik:RadDataForm>