Problema:
Al agregar nuevo elemento en EntityCollectionView planteó la validación requerida para campos de cadena, pero para mi propósito que debe mostrar que después de la validación del lado del servidor.
comportamiento real:
Aquí está el código del archivo de metadatos:EF. error de validación requerida para campos de cadena elevar sin [Obligatorio] atributo
[MetadataTypeAttribute(typeof(SomeEntityMetadata))]
public partial class SomeEntity
{
[EntityName]
internal sealed class SomeEntityMetadata
{
private SomeEntityMetadata()
{
}
public long Id { get; set; }
[EntityName(Name = "Name", OrderIndex = 2)]
public string Name { get; set; }
[EntityName(Name = "Data Type", OrderIndex = 1)]
public string Type { get; set; }
}
}
y una colección de este artículos binded a DataGrid
en XAML:
<navigation:DataGridTemplateColumn CanUserReorder="True"
CanUserSort="True"
Header="Name"
SortMemberPath="Name">
<navigation:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock VerticalAlignment="Center" Text="{Binding Name}"/>
</DataTemplate>
</navigation:DataGridTemplateColumn.CellTemplate>
<navigation:DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<TextBox Text="{Binding Name, Mode=TwoWay}" Height="Auto"/>
</DataTemplate>
</navigation:DataGridTemplateColumn.CellEditingTemplate>
</navigation:DataGridTemplateColumn>
<navigation:DataGridTemplateColumn CanUserFilter="True"
CanUserSort="True"
Header="Type"
SortMemberPath="Type">
<navigation:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock VerticalAlignment="Center" Text="{Binding Type}" />
</DataTemplate>
</navigation:DataGridTemplateColumn.CellTemplate>
<navigation:DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<ComboBox ItemsSource="{Binding DataTypes, Source={StaticResource entityViewModel}}" SelectedItem="{Binding Type, Mode=TwoWay}/>
</DataTemplate>
</navigation:DataGridTemplateColumn.CellEditingTemplate>
</navigation:DataGridTemplateColumn>
Como se puede ver no hay atributos [Required]
para los campos, pero al insertar el nuevo elemento w ith Name
y Type
campos establecidos en String.Empty
los errores "Se requiere el campo de nombre" y "Tipo de campo obligatorio" aparece.
comportamiento necesario: Saltar requiere validación y tirar ValidationException
del servidor cuando Name
o Type
campos están vacíos.
NOTA: Silverlight, EF, WCF RIA, MVVM.
Si desea lanzar la excepción de validación en sí misma, entonces por qué desea hacerlo desde el servidor de todos modos, para ahorrar viaje de ida y vuelta desde el servidor, fue más fácil gracias a los servicios de wcf Ria. –
@ AkashKava, tienes razón, pero necesito hacer algunas comprobaciones complicadas dentro del contexto. –