Microsoft Technologies Custom Dependency Property তৈরি এবং Binding গাইড ও নোট

299

WPF (Windows Presentation Foundation) এ Dependency Properties একটি গুরুত্বপূর্ণ বৈশিষ্ট্য যা ডেটা বাইন্ডিং এবং UI উপাদানগুলির মধ্যে স্বয়ংক্রিয় সিঙ্ক্রোনাইজেশন প্রদান করে। Custom Dependency Property তৈরি করা এবং তাকে Binding এর মাধ্যমে কাস্টমাইজ করা WPF অ্যাপ্লিকেশনে অনেক কার্যকরী।

Dependency Property কী?

Dependency Property হলো একটি প্রপার্টি যা WPF এ কন্ট্রোল বা ক্লাসে ব্যবহৃত হয় এবং এটি WPF এর ডিপেনডেন্সি প্রপার্টি সিস্টেমের মাধ্যমে ট্র্যাক করা হয়। এই প্রপার্টি সাধারণ C# প্রপার্টির তুলনায় আরও অনেক শক্তিশালী, কারণ এটি বিভিন্ন সুবিধা যেমন data binding, animation, styles, এবং resource management সমর্থন করে।

Custom Dependency Property তৈরি করা

WPF তে Custom Dependency Property তৈরি করতে হলে, আপনাকে একটি স্ট্যাটিক ফিল্ড তৈরি করতে হবে এবং সেই ফিল্ডটিকে ডিপেনডেন্সি প্রপার্টি হিসেবে নিবন্ধন করতে হবে। এই প্রপার্টি তৈরি করতে DependencyProperty.Register মেথড ব্যবহার করা হয়।

Custom Dependency Property উদাহরণ

ধরা যাক, আপনি একটি কাস্টম Color প্রপার্টি তৈরি করতে চান যা TextBlock কন্ট্রোলের টেক্সট রঙ পরিবর্তন করবে।

  1. Dependency Property তৈরি করা
using System.Windows;
using System.Windows.Media;

namespace WPFApp
{
    public class MyControl : FrameworkElement
    {
        // Define the Dependency Property
        public static readonly DependencyProperty TextColorProperty =
            DependencyProperty.Register(
                "TextColor", typeof(Color), typeof(MyControl),
                new PropertyMetadata(Colors.Black));  // Default value is Black

        // CLR Property Wrapper
        public Color TextColor
        {
            get { return (Color)GetValue(TextColorProperty); }
            set { SetValue(TextColorProperty, value); }
        }
    }
}

এখানে, TextColorProperty একটি Color টাইপের Dependency Property এবং এটি FrameworkElement ক্লাসের অংশ হিসেবে তৈরি করা হয়েছে। PropertyMetadata দিয়ে এটি একটি ডিফল্ট মান Colors.Black নির্ধারণ করা হয়েছে।

  1. XAML এ Custom Dependency Property Binding

এখন আপনি TextBlock এর জন্য একটি কাস্টম Dependency Property ব্যবহার করবেন।

<Window x:Class="WPFApp.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:WPFApp"
        Title="Custom Dependency Property Example" Height="350" Width="525">
    <Grid>
        <!-- Custom Control -->
        <local:MyControl x:Name="myControl" HorizontalAlignment="Center" VerticalAlignment="Center" Width="200" Height="100" />
        
        <!-- TextBlock with Binding to Custom Dependency Property -->
        <TextBlock Name="myTextBlock" HorizontalAlignment="Center" VerticalAlignment="Center" Text="Hello, WPF!" Foreground="{Binding ElementName=myControl, Path=TextColor}" />
    </Grid>
</Window>

এখানে, TextBlock এর Foreground প্রপার্টি TextColor Dependency Property এর সাথে বাইন্ড করা হয়েছে, যা MyControl কন্ট্রোলের TextColor প্রপার্টি দ্বারা নিয়ন্ত্রিত হবে।

  1. Code-behind (MainWindow.xaml.cs)
using System.Windows;
using System.Windows.Media;

namespace WPFApp
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();

            // Set the TextColor property of MyControl
            myControl.TextColor = Colors.Red;
        }
    }
}

এখানে, TextColor প্রপার্টি myControl কন্ট্রোলের মাধ্যমে সেট করা হয়েছে এবং TextBlock এর Foreground স্বয়ংক্রিয়ভাবে রেড রঙে পরিবর্তিত হবে।


Custom Dependency Property এর সুবিধা

  1. ডেটা বাইন্ডিং সমর্থন:
    Custom Dependency Properties সাধারণ C# প্রপার্টির তুলনায় ডেটা বাইন্ডিংকে আরও শক্তিশালী এবং নমনীয়ভাবে সাপোর্ট করে।
  2. UI উপাদান এবং কন্ট্রোলগুলোর মধ্যে স্বয়ংক্রিয় সিঙ্ক্রোনাইজেশন:
    Dependency Properties UI উপাদান এবং ডেটার মধ্যে সিঙ্ক্রোনাইজেশন তৈরি করে, অর্থাৎ যখন প্রপার্টি পরিবর্তিত হয়, UI তে তা স্বয়ংক্রিয়ভাবে প্রতিফলিত হয়।
  3. অ্যানিমেশন সমর্থন:
    Dependency Properties অ্যাপ্লিকেশনে অ্যানিমেশন যোগ করতে সাহায্য করে, যা UI উপাদানগুলোর পরিবর্তনকে মসৃণ এবং ইন্টারঅ্যাকটিভ করে তোলে।
  4. Resources এবং Styles:
    Custom Dependency Properties অ্যাপ্লিকেশনের Resources এবং Styles ব্যবস্থাপনার মধ্যে সহায়তা প্রদান করে।

সারাংশ (Summary)

Custom Dependency Property WPF তে কাস্টম UI প্রপার্টি তৈরি করার একটি শক্তিশালী পদ্ধতি। এটি UI কন্ট্রোলের আচরণ কাস্টমাইজ করতে, ডেটা বাইন্ডিং, অ্যানিমেশন এবং অন্যান্য ফিচার সাপোর্ট করতে ব্যবহৃত হয়। DependencyProperty.Register মেথড ব্যবহার করে কাস্টম Dependency Property তৈরি করা হয় এবং SetValue এবং GetValue মেথডের মাধ্যমে তার মান সেট বা রিট্রিভ করা হয়। Custom Dependency Property UI কন্ট্রোল এবং অ্যাপ্লিকেশনের লজিকের মধ্যে পরিষ্কার সম্পর্ক তৈরি করে, যা অ্যাপ্লিকেশনটির রক্ষণাবেক্ষণ এবং স্কেলেবিলিটি উন্নত করে।

Content added By
Promotion

Are you sure to start over?

Loading...