XAML এ ডাটা ভ্যালিডেশন পরিচালনা করতে IDataErrorInfo ইন্টারফেস এবং Validation Binding টেকনিক ব্যবহার করা হয়। এগুলি আপনাকে UI উপাদানগুলোতে ইনপুট ভ্যালিডেশন চালাতে সাহায্য করে, যার মাধ্যমে ব্যবহারকারীরা সঠিক তথ্য প্রদান করতে পারে এবং ভুল তথ্য প্রদান করলে ত্রুটি বার্তা দেখানো হয়।
IDataErrorInfo ইন্টারফেস
IDataErrorInfo হল একটি ইন্টারফেস যা আপনাকে মডেল (বা ভিউ মডেল) ক্লাসে ডাটা ভ্যালিডেশন করতে সাহায্য করে। এটি একটি প্রপার্টি বা ক্ষেত্রের ভ্যালিডেশন নির্ধারণ করে এবং যদি কোন ভুল থাকে তবে একটি ত্রুটি বার্তা প্রদান করে। আপনি যখন IDataErrorInfo ইন্টারফেসটি প্রয়োগ করেন, তখন আপনি প্রতিটি প্রোপার্টির জন্য ভ্যালিডেশন লজিক নির্ধারণ করতে পারেন।
IDataErrorInfo ইন্টারফেসের মূল উপাদানসমূহ:
- Error: এই প্রোপার্টি পুরো মডেলের জন্য একটি সাধারণ ত্রুটি বার্তা প্রদান করে।
- this[string columnName]: এটি প্রপার্টি ভিত্তিক ত্রুটি বার্তা প্রদান করে। এই প্রোপার্টি নির্ধারণ করে আপনি প্রতিটি প্রোপার্টির জন্য আলাদা ভ্যালিডেশন চালাতে পারবেন।
IDataErrorInfo ব্যবহার করে ভ্যালিডেশন উদাহরণ:
public class Person : IDataErrorInfo
{
public string Name { get; set; }
public int Age { get; set; }
public string Error
{
get
{
// সাধারণ ত্রুটি বার্তা
return null;
}
}
public string this[string columnName]
{
get
{
string error = null;
if (columnName == "Name")
{
if (string.IsNullOrEmpty(Name))
{
error = "Name cannot be empty.";
}
}
else if (columnName == "Age")
{
if (Age <= 0)
{
error = "Age must be greater than 0.";
}
}
return error;
}
}
}
এখানে:
- Error প্রোপার্টি কোনো সাধারণ ত্রুটি বার্তা না ফিরিয়ে দিলেও, আপনি বিশেষ কোনো প্রোপার্টির জন্য ত্রুটি বার্তা দিতে পারেন
this[string columnName]প্রোপার্টি দ্বারা। - যদি Name অথবা Age ত্রুটিপূর্ণ হয়, তাহলে সংশ্লিষ্ট ত্রুটি বার্তা দেখানো হবে।
XAML এ Validation Binding Techniques
XAML এ Validation ব্যাবহার করার জন্য কিছু পদ্ধতি রয়েছে যা ডাটা-বাইন্ডিংয়ের সাথে ভ্যালিডেশন পরিচালনা করে। এখানে কিছু মূল ভ্যালিডেশন টেকনিক দেওয়া হল:
1. Validation.Errors ব্যবহার করে UI তে ত্রুটি বার্তা দেখানো
XAML এ Validation.Errors ব্যবহার করে আপনি UI তে ইনপুট ত্রুটি দেখাতে পারেন। সাধারণত, আপনি TextBox, ComboBox, বা অন্যান্য ইনপুট কন্ট্রোলের সাথে Binding ব্যবহার করেন এবং Validation.ErrorTemplate দিয়ে ত্রুটি বার্তা প্রদর্শন করতে পারেন।
উদাহরণ:
<Window x:Class="MyApp.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Validation Example" Height="300" Width="400">
<Window.Resources>
<Style TargetType="TextBox">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=Name, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}" Value="">
<Setter Property="BorderBrush" Value="Red"/>
<Setter Property="ToolTip" Value="Name cannot be empty"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Window.Resources>
<StackPanel>
<TextBox Width="200" Height="30" Text="{Binding Name, UpdateSourceTrigger=PropertyChanged}" />
</StackPanel>
</Window>
এখানে:
- Binding দিয়ে Name প্রপার্টির জন্য ইনপুট ফিল্ড যুক্ত করা হয়েছে।
- ValidatesOnDataErrors=True ব্যবহার করা হয়েছে যাতে IDataErrorInfo এর মাধ্যমে কোনো ত্রুটি বার্তা গ্রহণ করা যায়।
- DataTrigger ব্যবহার করে যদি Name ফাঁকা থাকে, তাহলে বর্ডার রঙ লাল হবে এবং টুলটিপে ত্রুটি বার্তা দেখানো হবে।
2. Validation.IsValid এবং ErrorTemplate ব্যবহার
একটি আরও উন্নত ভ্যালিডেশন কৌশল হল Validation.IsValid এর সাথে ErrorTemplate ব্যবহার করা। এটি UI তে ত্রুটি বার্তা কাস্টমাইজ করতে সহায়তা করে।
উদাহরণ:
<TextBox Width="200" Height="30" Text="{Binding Name, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}">
<TextBox.ValidationErrorTemplate>
<ControlTemplate>
<StackPanel>
<TextBlock Text="Invalid input!" Foreground="Red"/>
</StackPanel>
</ControlTemplate>
</TextBox.ValidationErrorTemplate>
</TextBox>
এখানে:
- ValidationErrorTemplate ব্যবহার করে একটি কাস্টম ত্রুটি টেমপ্লেট তৈরি করা হয়েছে, যা UI তে ত্রুটির জন্য একটি লাল টেক্সট দেখাবে।
Binding এ Validation করতে কিছু গুরুত্বপূর্ণ পয়েন্ট
- UpdateSourceTrigger: এর মানে হল যে যখনই ব্যবহারকারী ইনপুট দেয়, তখন ইনপুট আপডেট হবে (যেমন, PropertyChanged বা LostFocus ইভেন্ট)।
- ValidatesOnDataErrors: এটি নিশ্চিত করে যে IDataErrorInfo ইন্টারফেস ব্যবহার করে কোনো ত্রুটি হলে তা UI তে দেখানো হবে।
- ErrorTemplate: এটি UI তে ত্রুটির জন্য একটি কাস্টম টেমপ্লেট নির্ধারণ করতে সাহায্য করে, যেখানে আপনি ত্রুটির বার্তা বা স্টাইল কাস্টমাইজ করতে পারবেন।
সারাংশ
- IDataErrorInfo ইন্টারফেস ব্যবহার করে আপনি মডেল স্তরে ডাটা ভ্যালিডেশন করতে পারেন এবং UI তে ত্রুটি বার্তা প্রদর্শন করতে পারেন।
- XAML এ Validation Binding Techniques ব্যবহার করে আপনি TextBox, ComboBox বা অন্যান্য UI উপাদানে ভ্যালিডেশন ইন্টারফেস সংযোগ করতে পারেন।
- Validation.Errors এবং Validation.ErrorTemplate ব্যবহার করে আপনি ত্রুটি বার্তা UI তে সুন্দরভাবে প্রদর্শন করতে পারেন।
Read more