logo
down
shadow

Validation (with custom ErrorTemplate) for a DataTemplate


Validation (with custom ErrorTemplate) for a DataTemplate

By : kate
Date : November 22 2020, 07:01 PM
I hope this helps you . You could define custom ErrorTemplates to both bindings, which define the StackPanel as Validation.ValidationAdornerSite. This way the StackPanel can be adorned instead of the textboxes, whenever an error is detected.
See this link for more details: Vincent Sibal about validation with ValidationAdornerSite
code :


Share : facebook icon twitter icon
WPF Validation: How to keep custom ErrorTemplate border correct size

WPF Validation: How to keep custom ErrorTemplate border correct size


By : maximilian.f
Date : March 29 2020, 07:55 AM
this will help Change the HorizontalAlignment of the Border from the default of Stretch to something like Left. This will allow it to use its desired size, which will be the size of the placeholder plus the size of the border, rather than being forced to stretch to the width of the DockPanel.
code :
<DockPanel LastChildFill="True">
    <Label DockPanel.Dock="Bottom" Foreground="Red" Content="{Binding ErrorContent}" Margin="0,5,0,0" Background="LightGray" />
    <Border BorderBrush="Red" BorderThickness="2" HorizontalAlignment="Left">
        <AdornedElementPlaceholder/>
    </Border>
</DockPanel>
WPF Validation ErrorTemplate for Custom TextBox

WPF Validation ErrorTemplate for Custom TextBox


By : wesley
Date : March 29 2020, 07:55 AM
This might help you Alright so the way I managed to fix the issue was by removing the AdornedElement keyword and changing the error template as follows:
code :
<local:CustomTextBox CustomText="{Binding ViewModelProperty}">
    <Validation.ErrorTemplate>
        <ControlTemplate>
            <DockPanel>
                <Border BorderBrush="Red" BorderThickness="1">
                    <AdornedElementPlaceholder x:Name="controlWithError"/>
                </Border>
                <TextBlock Foreground="Red" FontSize="20" FontFamily="Segoe UI" Margin="3,0,0,0"  MouseDown="Exclamation_MouseDown">!</TextBlock>
            </DockPanel>
        </ControlTemplate>
    </Validation.ErrorTemplate>
    <local:CustomTextBox.Style>
        <Style TargetType="{x:Type local:CustomTextBox}">
            <Style.Triggers>
                <Trigger Property="Validation.HasError" Value="true">
                    <Setter Property="ToolTip" Value="{Binding RelativeSource={x:Static RelativeSource.Self}, Path=(Validation.Errors)[0].ErrorContent}"/>
                    <Setter Property="Tag" Value="{Binding RelativeSource={x:Static RelativeSource.Self}, Path=(Validation.Errors)[0].ErrorContent}"/>
                </Trigger>
            </Style.Triggers>
        </Style>
    </local:CustomTextBox.Style>
</local:CustomTextBox>
Validation.ErrorTemplate not shown

Validation.ErrorTemplate not shown


By : Ivan Arnautov
Date : March 29 2020, 07:55 AM
help you fix your problem So i found my mistake, (or at least the part why the Validation.HasError are never reset) i used the IDataErrorInfo Interface in a wrong way. I didn't return null or String.Empty if the validation passed. :(
code :
    //Not used in WPF so return value is null
    string IDataErrorInfo.Error { get { return null; } }

    string IDataErrorInfo.this[string propertyName]
    {
        get
        {
            //the wrong way
            string error = "false way";
            //the right way
            string error = null;
            //or
            string error = String.Empty;

            switch (propertyName)
            {
                case ("name"):
                    if (string.IsNullOrEmpty(name) || name.Trim() == String.Empty)
                    {
                        error = "Enter name";
                    }
                    break;
                case ("age"):
                    if (string.IsNullOrEmpty(age) || age.Trim() == String.Empty)
                    {
                        error = "Enter age";
                    }
                    break;
                default:
                    Debug.Fail("Validation: Unexpected property: " + propertyName);
                    break;
            }
            return error;
        }
    }
Default ErrorTemplate displays alongside with a custom ErrorTemplate

Default ErrorTemplate displays alongside with a custom ErrorTemplate


By : HRS
Date : March 29 2020, 07:55 AM
should help you out It is because you defined ErrorTemplate and also defiend a Validation.HasError trigger in your style, you could use one of them. If you want to use the ErrorTemplate you need to remove the trigger, and change the Text binding to "Path=AdornedElement.Validation.Errors).CurrentItem.ErrorContent" then you will just see the result from ErrorTemplate:
code :
<Setter Property="Validation.ErrorTemplate">
        <Setter.Value>
            <ControlTemplate>
                <Grid>
                    <Border/>
                    <AdornedElementPlaceholder x:Name="placeholder" />
                    <Popup>
                        <StackPanel>
                            <Polygon/>
                            <Border>

             <TextBlock Text="{Binding ElementName=placeholder, 
                        Path=AdornedElement.(Validation.Errors).CurrentItem.ErrorContent,
                        Mode=OneWay}" />
                            </Border>
                        </StackPanel>
                    </Popup>
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
DataGridCell Validation.ErrorTemplate ignored

DataGridCell Validation.ErrorTemplate ignored


By : Lup Jess Martinez
Date : March 29 2020, 07:55 AM
To fix this issue I believe that I'm experiencing the same issue.
When using a DataGridTemplateColumn the content is presented with a ContentPresenter. This content presenter uses the default error template.
Related Posts Related Posts :
  • How do you load the app.config file into a DLL
  • Validation in ASP.net
  • Any ASP.Net benchmark tool?
  • Generics vs boxing
  • "Does not implement IControllerFactory.CreateController" in Visual Studio 2010
  • Tabs for a ASP.NET website
  • AccountManagement.UserPrincipal.Current takes 5 seconds
  • Will linq to sql work in an asp.net 2.0 web application?
  • How to use XML namespace prefixes without xmlns="..." everywhere? (.NET)
  • Retrieving OS name
  • .Net Regular Expression to get parenthetical text at end of <p> tags
  • The Project Location is Not Trusted error in Visual Studio
  • how to tell if a photo was taken in landscape or portrait? JPEG .NET metadata orientation
  • Winform and ValidateChildren()
  • Why need to mention "Supported by the .NET Compact Framework" for classes members?
  • Pass MSI parameters to .NET installer class
  • How to print stack trace of StackOverflowException
  • OnPropertyChange as an Alternative to Triggers in Entity Framework
  • "User Friendly" .net compatible Regex/Text matching tools?
  • Non-Ascii characters not supported by .net?
  • Linq SqlMethods.Like fails
  • To check whether the SQL server DB is working properly or not
  • What is the Difference between GC.GetTotalMemory(false) and GC.GetTotalMemory(true)
  • Which version of .NET is available for Xbox 360?
  • is the threadpool shared - .net
  • WPF RichTextBox - Formatting of typed text
  • "ResizeEnd" equivalent for usercontrols
  • How work with common utils project
  • Using image resource in XAML markup?
  • How to write an altered COM Structured Storage file to Disk?
  • Implementing auditing using Autofac if it support method interception?
  • How can a static class be resolved by the Unity Framework?
  • How to flush DNS cache in Windows Mobile programmatically?
  • how to set autoplay=true in google audio player?
  • Edit dialog, with bindings and OK/Cancel in WPF
  • What does MailMessage.IsBodyHtml do?
  • C# Class Library wont register for COM
  • Robust DateTime parser library for .NET
  • MySql BulkCopy/Insert from DataReader
  • How do I allow all users access to one route within a website with integrated auth?
  • Reading from a oracle temp table in a separate procedure than the one it was populted in
  • Recommendations for IPC between parent and child processes in .NET?
  • How to get a majority color in an image?
  • Rename parameter in a WCF client interface
  • In WPF: Children.Remove or Children.Clear doesn't free objects
  • Convincing Management to use WCF
  • How to access a property in a class used to implement IDispatchMessageInspector on a WCF service (server side)?
  • How to generate distinct random numbers per distinct threads in .NET?
  • Using a DataSet instead of custom business entities in soa and n-tier architecture
  • .NET assembly loading problem
  • Code Trivia: optimize the code for multiple nested loops
  • Is it safe to use ThreadStatic variable in WCF?
  • Back button in ajax update panel not working
  • Problem using ‘useLegacyV2RuntimeActivationPolicy’ & supportedRuntime in an application
  • I've built a Windows service as "Any CPU". Why does it run in 32-bit mode on my 64 bit machine?
  • Is there any way to disable the "double-click to copy" functionality of a .NET label?
  • Verify installation of ASP.NET Ajax Extension
  • Allow IExtenderProvider control to attach to controls on a UserControl
  • Hooking into AppInitialize with WCF service
  • Outlook 2003 add-in - Getting COM exception on application shutdown after creating WPF window
  • shadow
    Privacy Policy - Terms - Contact Us © 35dp-dentalpractice.co.uk