.NET MAUI ile MVVM ve Community Toolkit Kullanımı

.NET MAUI ile MVVM ve Community Toolkit Kullanımı

.NET MAUI ile MVVM ve Community Toolkit Kullanımı

.NET MAUI projelerinde MVVM (Model-View-ViewModel) deseni, UI ve iş mantığı arasındaki bağlantıyı yönetmek için yaygın olarak kullanılır. Community Toolkit, bu deseni daha kolay ve etkili bir şekilde uygulamanıza yardımcı olacak güçlü araçlar sunar.

1. MVVM Nedir?

MVVM, kullanıcı arayüzü (View), veri mantığı (Model) ve aradaki bağlayıcı katman (ViewModel) arasında net bir ayrım sağlar. .NET MAUI projelerinde bu desen, kodun daha temiz ve sürdürülebilir olmasını sağlar.

2. Community Toolkit Nedir?

Community Toolkit, MAUI projelerinde MVVM uygulamasını kolaylaştıran özellikler sunar. Özellikle aşağıdaki özellikler dikkat çeker:

  • ObservableObject: ViewModel'lerde veri değişikliklerini izlemek için.
  • RelayCommand: Komutlar için daha basit bir yapı.
  • WeakReferenceMessenger: Bileşenler arası mesajlaşma.

3. MVVM Uygulama Adımları

3.1. ViewModel Oluşturma


using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;

public partial class MainViewModel : ObservableObject
{
    [ObservableProperty]
    private string _greeting;

    public MainViewModel()
    {
        Greeting = "Merhaba, MVVM!";
        ChangeGreetingCommand = new RelayCommand(ChangeGreeting);
    }

    public RelayCommand ChangeGreetingCommand { get; }

    private void ChangeGreeting()
    {
        Greeting = "Hoşgeldiniz!";
    }
}

3.2. View ile Bağlama

XAML dosyasında veri bağlama yapısını şu şekilde tanımlayın:



    
        
        
    

4. RelayCommand ve Mesajlaşma

RelayCommand, parametreli komutlar oluşturmayı kolaylaştırır:


public RelayCommand<string> SendMessageCommand { get; }

SendMessageCommand = new RelayCommand<string>(message =>
{
    Debug.WriteLine($"Mesaj: {message}");
});

Sonuç

.NET MAUI ve Community Toolkit ile MVVM uygulamak, projelerinizi daha düzenli ve sürdürülebilir hale getirir. Bu araçlarla veri bağlama, komutlar ve mesajlaşma gibi özellikleri kolayca entegre edebilirsiniz.