Microsoft Technologies ObservableCollection এবং INotifyPropertyChanged Interface গাইড ও নোট

305

Windows Application Development, বিশেষ করে WPF (Windows Presentation Foundation) বা UWP (Universal Windows Platform)-এ, ObservableCollection এবং INotifyPropertyChanged ইন্টারফেস ব্যবহার করা হয় ডেটা বাইন্ডিং এবং UI আপডেটের জন্য। এই দুটি টুল ডেভেলপারদের ডেটা মডেল এবং UI-এর মধ্যে সিঙ্ক্রোনাইজেশন নিশ্চিত করতে সহায়তা করে।


১. INotifyPropertyChanged Interface

INotifyPropertyChanged ইন্টারফেস একটি খুব গুরুত্বপূর্ণ ইন্টারফেস যা আপনাকে একটি প্রপার্টির মান পরিবর্তিত হলে UI বা অন্য ডেটা কনজিউমারের কাছে এটির আপডেট পাঠানোর সুযোগ দেয়। যখন কোনো প্রপার্টি পরিবর্তিত হয়, তখন PropertyChanged ইভেন্ট ট্রিগার হয় এবং UI বা অন্য ডেটা কনজিউমার তা জানতে পারে।

বৈশিষ্ট্য:

  • PropertyChanged Event: এই ইভেন্টের মাধ্যমে প্রপার্টির পরিবর্তনগুলি ট্র্যাক করা যায়।
  • ডেটা বাইন্ডিংয়ের মাধ্যমে UI তে স্বয়ংক্রিয় আপডেট সাধিত হয়।

উদাহরণ:

using System;
using System.ComponentModel;

public class Person : INotifyPropertyChanged
{
    private string name;

    public string Name
    {
        get { return name; }
        set
        {
            if (name != value)
            {
                name = value;
                OnPropertyChanged(nameof(Name));  // Notify the UI of the change
            }
        }
    }

    public event PropertyChangedEventHandler PropertyChanged;

    protected virtual void OnPropertyChanged(string propertyName)
    {
        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
    }
}

ব্যাখ্যা:

  • INotifyPropertyChanged ইন্টারফেসটি ক্লাসে যোগ করা হয় যাতে PropertyChanged ইভেন্টটি ট্রিগার করা যায় যখন Name প্রপার্টির মান পরিবর্তিত হয়।
  • OnPropertyChanged মেথডটি UI-তে পরিবর্তন জানাতে ব্যবহৃত হয়।

২. ObservableCollection

ObservableCollection হলো একটি বিশেষ ধরনের Collection যা স্বয়ংক্রিয়ভাবে UI বা অন্য ডেটা কনজিউমারের কাছে পরিবর্তন পাঠাতে পারে। যখন ICollection এ কোনো আইটেম যুক্ত, মুছে ফেলা বা আপডেট হয়, তখন CollectionChanged ইভেন্ট ট্রিগার হয়।

বৈশিষ্ট্য:

  • CollectionChanged Event: আইটেমগুলোর পরিবর্তন (যোগ, মুছে ফেলা, পরিবর্তন) সম্পর্কে UI-কে জানাতে ব্যবহৃত হয়।
  • UI তে স্বয়ংক্রিয়ভাবে পরিবর্তন দেখানোর জন্য আদর্শ।

উদাহরণ:

using System.Collections.ObjectModel;

public class MainViewModel
{
    public ObservableCollection<Person> People { get; set; }

    public MainViewModel()
    {
        People = new ObservableCollection<Person>
        {
            new Person { Name = "John" },
            new Person { Name = "Jane" }
        };
    }
}

ব্যাখ্যা:

  • ObservableCollection আইটেমগুলোর একটি তালিকা তৈরি করে এবং UI-তে আইটেম যোগ, মুছে ফেলা বা পরিবর্তিত হলে তা স্বয়ংক্রিয়ভাবে প্রতিফলিত হয়।

INotifyPropertyChanged এবং ObservableCollection এর সমন্বয়

INotifyPropertyChanged এবং ObservableCollection একসঙ্গে ব্যবহৃত হয় যখন আপনাকে ডেটা বাইন্ডিংয়ের মাধ্যমে UI তে ডেটার পরিবর্তন সিঙ্ক্রোনাইজ করতে হয়। INotifyPropertyChanged একে অপরের মান পরিবর্তন জানায় এবং ObservableCollection-এর মাধ্যমে ডেটা এক্সপোজ করা হয়, যা UI-তে লাইভ আপডেটের সুযোগ দেয়।

উদাহরণ:

using System.Collections.ObjectModel;
using System.ComponentModel;

public class MainViewModel : INotifyPropertyChanged
{
    private ObservableCollection<Person> people;

    public ObservableCollection<Person> People
    {
        get { return people; }
        set
        {
            if (people != value)
            {
                people = value;
                OnPropertyChanged(nameof(People));
            }
        }
    }

    public MainViewModel()
    {
        People = new ObservableCollection<Person>
        {
            new Person { Name = "John" },
            new Person { Name = "Jane" }
        };
    }

    public event PropertyChangedEventHandler PropertyChanged;

    protected virtual void OnPropertyChanged(string propertyName)
    {
        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
    }
}

ব্যাখ্যা:

  • People প্রপার্টি পরিবর্তিত হলে INotifyPropertyChanged ইভেন্ট ট্রিগার করে UI তে ObservableCollection এর পরিবর্তন জানানো হয়।
  • ObservableCollection আইটেমগুলি পরিবর্তন বা আপডেট হলে CollectionChanged ইভেন্ট UI তে জানিয়ে দেয়।

উপসংহার

INotifyPropertyChanged এবং ObservableCollection দুটি গুরুত্বপূর্ণ টুল যা ডেটা বাইন্ডিং এবং UI আপডেটের জন্য ব্যবহৃত হয়। INotifyPropertyChanged UI-কে কোনো প্রপার্টি পরিবর্তিত হলে তা জানাতে সাহায্য করে, এবং ObservableCollection আইটেমগুলির পরিবর্তন স্বয়ংক্রিয়ভাবে UI তে প্রদর্শন করে। একসঙ্গে ব্যবহৃত হলে, এগুলি WPF, UWP, এবং WinUI অ্যাপ্লিকেশনে অত্যন্ত কার্যকরী এবং ডেটা সিঙ্ক্রোনাইজেশনের জন্য আদর্শ সমাধান প্রদান করে।

Content added By
Promotion

Are you sure to start over?

Loading...