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>
Hello
Is there option to span the header of the grid on two columns?
Best regards
Ehud
public class MainViewModel : ViewModelBase{ public MainViewModel() { this.Items = new ObservableCollection<Toto>(); this.Items.Add(new Toto { Name = "AAAA", Num = 0 }); this.Items.Add(new Toto { Name = "BBBB", Num = 1 }); this.Items.Add(new Toto { Name = "CCCC", Num = 1 }); this.Items.Add(new Toto { Name = "DDDD", Num = 0 }); this.Items.Add(new Toto { Name = "EEEE", Num = 1 }); this.Items.Add(new Toto { Name = "FFFF", Num = 0 }); this.ItemsList = new ListCollectionView(this.Items); } private ObservableCollection<Toto> Items { get; set; } public ListCollectionView ItemsList { get; private set; }}public class Toto : ViewModelBase{ private string name; public string Name { get { return name; } set { name = value; this.RaisePropertyChanged("Name"); } } private bool isSelected; public bool IsSelected { get { return isSelected; } set { isSelected = value; this.RaisePropertyChanged("IsSelected"); } } private int num; public int Num { get { return num; } set { num = value; } } }<Window x:Class="MvvmLight1.MainWindow" xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation" Title="MainWindow" Height="300" Width="400"> <Window.Resources> <ResourceDictionary> <Style TargetType="{x:Type telerik:GridViewRow}" x:Uid="Style_6"> <Setter x:Uid="Setter_19" Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" /> <Style.Triggers> <Trigger x:Uid="Trigger_3" Property="IsSelected" Value="True"> <Setter x:Uid="Setter_20" Property="Background" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}" /> </Trigger> </Style.Triggers> </Style> </ResourceDictionary> </Window.Resources> <StackPanel> <Grid x:Name="LayoutRoot" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"> <Grid.ColumnDefinitions> <ColumnDefinition Width="*" /> <ColumnDefinition Width="*" /> </Grid.ColumnDefinitions> <telerik:RadGridView AutoGenerateColumns="true" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" Name="Grid1" SelectionMode="Extended" ScrollViewer.IsDeferredScrollingEnabled="True" EnableRowVirtualization="True" RowDetailsVisibilityMode="Collapsed" ItemsSource="{Binding ItemsList}"/> <telerik:RadGridView Grid.Column="1" AutoGenerateColumns="true" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" Name="Grid2" SelectionMode="Extended" ScrollViewer.IsDeferredScrollingEnabled="True" EnableRowVirtualization="True" RowDetailsVisibilityMode="Collapsed" ItemsSource="{Binding ItemsList}"/> </Grid> </StackPanel></Window>