Validation Rule Class তৈরি এবং কনফিগার করা

XAML Data Validation Techniques - এক্সএএমএল (XAML) - Microsoft Technologies

256

XAML এবং WPF (Windows Presentation Foundation) অ্যাপ্লিকেশনে Validation Rules ব্যবহার করা হয় যাতে ইউজার ইনপুট সঠিক এবং প্রমিত থাকে। এটি মূলত Data Binding এবং IValueConverter এর সাথে কাজ করে, যেখানে UI-তে প্রদর্শিত ডেটা যাচাই করা হয়।

Validation Rule হল একটি কাস্টম ক্লাস যা ডেটার মান যাচাই করার জন্য তৈরি করা হয়। এটি UI ইনপুটের মান যাচাই করতে ব্যবহার করা হয় এবং যদি ইনপুট মান বৈধ না হয়, তবে একটি ত্রুটি (error) দেখায়।

WPF এ Validation Rule তৈরি এবং কনফিগার করতে নিম্নলিখিত স্টেপগুলো অনুসরণ করা যায়:


১. Validation Rule Class তৈরি করা

প্রথমে একটি কাস্টম Validation Rule ক্লাস তৈরি করতে হবে যা ValidationRule ক্লাস থেকে ইনহেরিট করবে এবং Validate মেথডটি ওভাররাইড করবে।

উদাহরণ: IntegerValidationRule তৈরি

using System;
using System.Globalization;
using System.Windows.Controls;

public class IntegerValidationRule : ValidationRule
{
    public override ValidationResult Validate(object value, CultureInfo cultureInfo)
    {
        string input = value as string;

        // চেক করুন যদি ইনপুট একটি সংখ্যা না হয়
        if (string.IsNullOrEmpty(input) || !int.TryParse(input, out _))
        {
            // যদি ইনপুট একটি বৈধ সংখ্যা না হয়, ত্রুটি প্রদর্শন করুন
            return new ValidationResult(false, "এটি একটি বৈধ পূর্ণসংখ্যা হতে হবে");
        }

        // যদি ইনপুট বৈধ হয়, তাহলে ValidationResult কে True রিটার্ন করুন
        return ValidationResult.ValidResult;
    }
}

এখানে:

  • IntegerValidationRule নামক কাস্টম ভ্যালিডেশন রুল তৈরি করা হয়েছে যা একটি পূর্ণসংখ্যা চেক করবে।
  • Validate মেথডটি ইনপুট মানকে যাচাই করে এবং যদি তা একটি পূর্ণসংখ্যা না হয়, তবে একটি ত্রুটি বার্তা প্রদর্শন করবে।

২. Validation Rule ব্যবহার করা

এবার আমাদের তৈরি করা ValidationRule ক্লাসটি XAML ফাইলে ব্যবহার করতে হবে। সাধারণত Binding এর সাথে ValidationRules যোগ করা হয় যাতে ইউজার ইনপুট যাচাই করা যায়।

উদাহরণ: TextBox এ Validation Rule প্রয়োগ করা

<Window x:Class="ValidationExample.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Validation Example" Height="200" Width="300">

    <Grid>
        <TextBox Name="inputTextBox" HorizontalAlignment="Left" VerticalAlignment="Top" Width="200" Margin="10">
            <TextBox.Text>
                <Binding Path="UserInput">
                    <Binding.ValidationRules>
                        <local:IntegerValidationRule />
                    </Binding.ValidationRules>
                </Binding>
            </TextBox.Text>
        </TextBox>

        <TextBlock Name="errorText" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="10,40,0,0" Foreground="Red"/>
    </Grid>
</Window>

এখানে:

  • Binding ব্যবহার করা হয়েছে TextBox এর Text প্রপার্টির জন্য, এবং ValidationRules এর মধ্যে IntegerValidationRule যোগ করা হয়েছে।
  • IntegerValidationRule ক্লাসটি যাচাই করবে যে ইনপুট একটি পূর্ণসংখ্যা কিনা।
  • errorText নামক একটি TextBlock তৈরি করা হয়েছে যা ত্রুটি বার্তা প্রদর্শন করবে।

৩. Validation Result হ্যান্ডলিং এবং ত্রুটি প্রদর্শন

এখন, যদি ইনপুটে কোনো ভুল থাকে, তাহলে ত্রুটি বার্তা UI তে দেখানোর জন্য Validation.Error ইভেন্ট ব্যবহার করতে হবে।

উদাহরণ: ত্রুটি বার্তা প্রদর্শন

using System.Windows;

namespace ValidationExample
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            this.DataContext = this;
        }

        private string _userInput;
        public string UserInput
        {
            get { return _userInput; }
            set
            {
                _userInput = value;
                ValidateInput();
            }
        }

        private void ValidateInput()
        {
            // Validate the input manually if needed
            var validationResult = new IntegerValidationRule().Validate(UserInput, null);

            if (!validationResult.IsValid)
            {
                errorText.Text = validationResult.ErrorContent.ToString();
            }
            else
            {
                errorText.Text = string.Empty;
            }
        }
    }
}

এখানে:

  • UserInput প্রপার্টি DataContext হিসেবে ব্যবহৃত হয়েছে এবং IntegerValidationRule ক্লাসের মাধ্যমে ইউজারের ইনপুট যাচাই করা হচ্ছে।
  • যদি ইনপুট সঠিক না হয়, তবে errorText এর মাধ্যমে ত্রুটি বার্তা প্রদর্শন করা হবে।

৪. XAML এ ত্রুটি বার্তা কনফিগার করা

আপনি যদি ইন্টারফেসে ত্রুটি বার্তা দেখাতে চান, তাহলে Validation.ErrorTemplate ব্যবহার করে ত্রুটি বার্তার জন্য একটি কাস্টম টেমপ্লেট তৈরি করতে পারেন।

উদাহরণ: Custom ErrorTemplate

<TextBox Name="inputTextBox" HorizontalAlignment="Left" VerticalAlignment="Top" Width="200" Margin="10">
    <TextBox.Text>
        <Binding Path="UserInput">
            <Binding.ValidationRules>
                <local:IntegerValidationRule />
            </Binding.ValidationRules>
        </Binding>
    </TextBox.Text>
    <TextBox.ValidationErrorTemplate>
        <ControlTemplate>
            <StackPanel>
                <Border BorderBrush="Red" BorderThickness="2">
                    <AdornedElementPlaceholder />
                </Border>
                <TextBlock Foreground="Red" Text="Invalid input"/>
            </StackPanel>
        </ControlTemplate>
    </TextBox.ValidationErrorTemplate>
</TextBox>

এখানে:

  • ValidationErrorTemplate ব্যবহার করা হয়েছে যাতে ইনপুট ভুল হলে টেক্সটবক্সের চারপাশে একটি Red Border এবং ত্রুটি বার্তা প্রদর্শিত হয়।

সারাংশ

  • Validation Rule তৈরি করা WPF অ্যাপ্লিকেশনগুলিতে ইউজারের ইনপুট যাচাই করতে খুব কার্যকরী।
  • ValidationRule ক্লাসের মাধ্যমে কাস্টম যাচাই তৈরি করতে হয়, যেখানে Validate মেথডটি ইনপুট যাচাই করে।
  • XAMLValidationRules এবং ValidationErrorTemplate ব্যবহার করে UI তে ত্রুটি দেখানো যায় এবং ইউজারকে সঠিক ইনপুট দেওয়ার জন্য উৎসাহিত করা হয়।

এই পদ্ধতিতে আপনি কাস্টম ভ্যালিডেশন রুল তৈরি এবং কনফিগার করে ব্যবহারকারীর ইনপুটকে সঠিকভাবে যাচাই করতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...