private void LoadData()
{
this.radBusy.IsBusy = true;
DataCRMDataContext dc = new DataCRMDataContext();
var query = from i in dc.VACTIVEREPs
where i.RepID > 0
select i;
List<CRM_GIS.VACTIVEREP> lstVActiveReps = query.ToList();
foreach (VACTIVEREP Rep in lstVActiveReps)
{
var pushpin = new Pushpin();
pushpin.Background = System.Windows.Media.
Brushes.Red;
pushpin.ToolTip = Rep.LastName +
", " + Rep.FirstName + " " + Rep.RepNo;
MapLayer.SetLocation(pushpin, new Location(Convert.ToDouble(Rep.lat), Convert.ToDouble(Rep.lng)));
pushpin.MouseDoubleClick +=
new MouseButtonEventHandler(pushpin_MouseDoubleClick);
pushpin.MouseDown +=
new MouseButtonEventHandler(pushpin_MouseDown);
this.informationLayer.Items.Add(pushpin);
}
this.radBusy.IsBusy = false;
}
<UserControl xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation" x:Class="MiexProto.Views.EmployeeFormView" mc:Ignorable="d" x:Name="me" d:DesignHeight="300" d:DesignWidth="300"> <UserControl.Resources> <DataTemplate x:Key="EmployeeTemplate"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition/> <ColumnDefinition/> <ColumnDefinition/> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition/> <RowDefinition/> <RowDefinition/> </Grid.RowDefinitions> <StackPanel Orientation="Horizontal" Grid.Row="0" Grid.Column="0"> <Label Content="Anrede"/> <telerik:DataFormComboBoxField Height="auto" DataMemberBinding="{Binding AnredeId, Mode=TwoWay, NotifyOnValidationError=True, ValidatesOnExceptions=True}" SelectedValuePath="AnredeId" DisplayMemberPath="Bezeichnung" ItemsSource="{Binding ElementName=me, Path=DataContext.ListAnrede}" /> </StackPanel> <StackPanel Orientation="Horizontal" Grid.Row="0" Grid.Column="1"> <Label Content="Titel" /> <telerik:DataFormComboBoxField Height="Auto" DataMemberBinding="{Binding Titel.Bezeichnung, Mode=TwoWay, NotifyOnValidationError=True, ValidatesOnExceptions=True}" DisplayMemberPath="Bezeichnung" ItemsSource="{Binding ElementName=me, Path=DataContext.ListTitel}" /> </StackPanel> <telerik:DataFormCheckBoxField Grid.Row="0" Grid.Column="2" Label="Deaktiviert" DataMemberBinding="{Binding Deaktiviert, Mode=TwoWay, NotifyOnValidationError=True, ValidatesOnExceptions=True}" /> <telerik:DataFormDataField Grid.Row="1" Grid.Column="0" Label="Nachname" DataMemberBinding="{Binding Nachname, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay, NotifyOnValidationError=True, ValidatesOnExceptions=True}" /> <telerik:DataFormDataField Grid.Row="1" Grid.Column="1" Label="Vorname" DataMemberBinding="{Binding Vorname, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay, NotifyOnValidationError=True, ValidatesOnExceptions=True}" /> <telerik:DataFormDataField Grid.Row="2" Grid.Column="0" Label="Durchwahl" DataMemberBinding="{Binding Durchwahl, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay, NotifyOnValidationError=True, ValidatesOnExceptions=True}" /> <telerik:DataFormDataField Grid.Row="2" Grid.Column="1" Label="Mobilnummer" DataMemberBinding="{Binding Mobilnummer, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay, NotifyOnValidationError=True, ValidatesOnExceptions=True, ValidatesOnDataErrors=True}" /> </Grid> </DataTemplate> </UserControl.Resources> <Grid> <telerik:RadDataForm CurrentItem="{Binding Employee}" Header="{Binding Employee.Nachname}" AutoEdit="True" CommandButtonsVisibility="None" EditTemplate="{StaticResource EmployeeTemplate}" AutoGenerateFields="False" /> </Grid></UserControl>namespace Entities{ using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; public partial class Mitarbeiter { public Mitarbeiter() { this.Veranstaltungsanmeldung = new HashSet<Veranstaltungsanmeldung>(); this.Zustaendigkeit = new HashSet<Zustaendigkeit>(); } public int MitarbeiterId { get; set; } public int KundeId { get; set; } public int AnredeId { get; set; } public int TitelId { get; set; } public string Vorname { get; set; } public string Nachname { get; set; } public string Durchwahl { get; set; } public string Email { get; set; } [Required(AllowEmptyStrings = false, ErrorMessage = "Es muss eine Handynummer angegeben werden!")] [Display(Name = "Kunde")] [RegularExpression("^\\+(\\d+)\\s\\((\\d+)\\)\\s(\\d+)(\\s-\\s(\\d+))?", ErrorMessage = "Die Telefonnummer muss im Format +43 (XXX) XXXXX - XX sein")] public string Mobilnummer { get; set; } public bool Deaktiviert { get; set; } public string Bild { get; set; } public System.DateTime UpdateDatum { get; set; } public string UpdateBenutzer { get; set; } public virtual Anrede Anrede { get; set; } public virtual Kunde Kunde { get; set; } public virtual Titel Titel { get; set; } public virtual ICollection<Veranstaltungsanmeldung> Veranstaltungsanmeldung { get; set; } public virtual ICollection<Zustaendigkeit> Zustaendigkeit { get; set; } }}Hi Support
We implement IDataErrorInfo for our Data, when we enter invalid data in edit mode it shows red box but when we update it to old data it doesn't change and still shows invalid data and error message and let us pass the cell.
We don't use cell validation and we use MVVM pattern.
thanks in advance,
Mehri
public partial class DataDictionary : IDataErrorInfo
{
#region IDataErrorInfo Members
public string Error
{
get
{
return null;
}
}
public string this[string columnName]
{
get
{
if (columnName == "Name")
{
if (Name == null || Name == string.Empty)
return "Name cannot be null or empty";
}
else if (columnName == "Code")
{
if (Code == 0)
return "Code Cannot be zero";
}
return "";
}
}
#endregion
}
//****************
<telerik:RadGridView ItemsSource="{Binding AllDataDictionary}"
SelectedItem="{Binding SelectedDataDictionary}"
HorizontalAlignment="Left" Margin="3,28,0,47"
Name="radGrid" ShowGroupPanel="False" Width="Auto"
AutoGenerateColumns="False"
ShowInsertRow="True" CanUserDeleteRows="False"
IsSynchronizedWithCurrentItem="True"
RowHeight="25" Height="405" >
<telerik:RadGridView.Columns>
<telerik:GridViewDataColumn Header="Code" Width="70" DataMemberBinding="{Binding Code}"
ValidatesOnDataErrors="Default" />
<telerik:GridViewDataColumn Header="Name" Width="*" DataMemberBinding="{Binding Name}"
ValidatesOnDataErrors="Default" />
</telerik:RadGridView.Columns>
</telerik:RadGridView>