<Window x:Class="WpfPrismTutorial.Views.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfPrismTutorial"
mc:Ignorable="d"
prism:ViewModelLocator.AutoWireViewModel="True"
xmlns:prism="http://prismlibrary.com/"
xmlns:valid="clr-namespace:WpfPrismTutorial.Validations"
Title="MainWindow" Height="450" Width="800">
<Window.Resources>
<ControlTemplate x:Key="
errorTemplate">
<StackPanel Orientation="Horizontal">
<AdornedElementPlaceholder x:Name="ErrorHolder" >
<Border BorderBrush="red" BorderThickness="1" />
</AdornedElementPlaceholder>
<TextBlock Text="{Binding [0].ErrorContent}" VerticalAlignment="Center" HorizontalAlignment="Right" Foreground="Red"/>
</StackPanel>
</ControlTemplate>
</Window.Resources>
<Grid VerticalAlignment="Center" HorizontalAlignment="Left">
<StackPanel Orientation="Horizontal" Grid.Row="3">
<TextBlock Text="Validation by IDataErrorInfo " Margin="5,5"/>
<TextBox Text="{Binding MainWindowModel.ValidationByIDataErrorInfo,UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{StaticResource errorTemplate}" Height="30" Width="300"/>
</StackPanel>
</Grid>
</Window>
ViewModel
public class MainWindowViewModel : BindableBase
{
private MainWindowModel mainWindowModel = new MainWindowModel();
public MainWindowModel MainWindowModel
{
get { return mainWindowModel; }
set { SetProperty(ref mainWindowModel, value); }
}
}
Model
public class
MainWindowModel : BindableBase,
IDataErrorInfo
{
#region Validation By IDataErrorInfo
private string _validationByIDataErrorInfo = string.Empty;
public string ValidationByIDataErrorInfo
{
get { return _validationByIDataErrorInfo; }
set
{
SetProperty(ref _validationByIDataErrorInfo, value);
}
}
#endregion
public string Error { get; }
public string this[string columnName]
{
get
{
if (columnName == "ValidationByIDataErrorInfo")
return "Validation By IDataErrorInfo should not empty";
return string.Empty;
}
}
}
Comments
Post a Comment