因此,在datagrid或dataform中如果存在验证错误,我们在红丝带上会出现白色错误字。
如何将信息放在那里?
编辑:澄清:我对一切感到满意。我唯一想要的是将datagrid验证面板中显示的“ERROR”字翻译成其他语言。
答案 0 :(得分:1)
因为Silverlight在关注点分离方面很重要,所以这应该通过使用Data Annotation Validators和INotifyDataErrorInfo在中间层进行验证来实现。一个好的方法是依靠WCF RIA服务及其提供的服务。请参阅此文章:http://www.silverlightshow.net/items/WCF-RIA-Services-Part-6-Validating-Data.aspx
您也可以创建自己的错误控件来显示错误,但纯粹在客户端执行业务规则的模式并不理想。 WCF RIA Services允许在中间层编码的业务规则毫不费力地流入客户端代码。然而,网格的一个问题是,您从未真正编辑过多行,因此无法显示多行错误。
答案 1 :(得分:1)
” Style TargetType =“dataInput:ValidationSummary”>
<Setter Property="HeaderTemplate">
<Setter.Value>
<DataTemplate>
<Border Background="#FFDC020D" CornerRadius="2" x:Name="Header" Margin="-1,-1,-1,0">
<StackPanel Margin="6,2,6,4" Orientation="Horizontal" VerticalAlignment="Top">
<Grid Height="13" Width="13">
<Ellipse Margin="0" RenderTransformOrigin="0.5,0.5" >
<Ellipse.Stroke>
<LinearGradientBrush StartPoint="0.505,0.65" EndPoint="0.5,0.058">
<GradientStop Color="#FFCA000C" Offset="0"/>
<GradientStop Color="#FFFF9298" Offset="0.991"/>
</LinearGradientBrush>
</Ellipse.Stroke>
<Ellipse.Fill>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Color="#FFFFFFFF" Offset="0"/>
<GradientStop Color="#FFFDC8C8" Offset="1"/>
</LinearGradientBrush>
</Ellipse.Fill>
</Ellipse>
<Path Fill="#DDD43940" Data="M5.5,2.5 L7.5,2.5 L7.5,8 L5.5,8 M5.5,9.5 L7.5,9.5 L7.5,10.5 L5.5,10.5"/>
</Grid>
<TextBlock Padding="4,1,0,0" Text="CUSTOM MESSAGE" Foreground="#FFFFFFFF" FontWeight="Bold"/>
</StackPanel>
</Border>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
其中dataInput是
xmlns:dataInput="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data.Input"
这些样式和模板非常冗长