Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 20694|Yanıt: 0

[WPF] WPF RelayCommand

[Bağlantıyı kopyala]
Yayınlandı 18.12.2017 21:16:49 | | |

Yaygın kullanılan Wpf geliştirmelerinde, ViewModel'de INotifyPropertyChanged arayüzünü uygularız ve böylece PropertyChanged olayını tetikleyerek arayüz değişikliklerini bildirmek amacıyla kullanılırız.

MVVMLight çerçevesinde, burada tanımladığımız ViewModel, MvvmLight çerçevesinde kapsüllenmiş olan ViewModelBase'den miras alınmıştır ve INotifyPropertyChanged arayüzünü uygulamıştır.

Bu nedenle, ViewModel özelliğini tanımlarken, özellik değişikliğini bildirmek için sadece RaisePropertyChanged(PropertyName) çağırmamız yeterlidir.



Olaylar, WPF/SL uygulamalarında arayüz için arka plan koduyla etkileşim kurmanın en önemli yoludur ve geleneksel yöntemlerin aksine, olaylar çoğunlukla mvvm'deki komutlara bağlanarak yönetilir; bu yüzden mvvm'de olayların nasıl işlendiğini anlamak için önce komutların nasıl çalıştığını bilmek gerekir.

1. Röle Komutası komutu

WPF/SL komutları ICommand arayüzü uygulanarak oluşturulur. ICommand iki yöntem (Execute ve CanExecute) ve bir olay (CanExecuteChanged) sunar. Execute, komutla ilişkili eylemi çalıştırır. CanExecute, mevcut komut hedefinde bir komutun yürütülüp çalışılamayacağını belirler. MvvmLight'ta ICommand arayüzünü uygulayan sınıf RelayCommand'dır; bu sınıf Execute ve CanExecute metodlarını üretici üzerinden başlatır, böylece üretici delege türünün parametrelerini girer, Execute ve CanExecute ise devredilen yöntemleri çalıştırır ve ilgili RelayCommand kodu şöyledir:


2. Comand öznitelik bağlaması

Basit bir örnek: Bir TextBox ve bir Button, TextBox yalnızca içerik boş olmadığında kullanılabilir ve mevcut Button'a tıklanarak TextBox içeriği gösterilir.




ViewMode:







Önceki:android-TableLayout ve TableRow kullanımı
Önümüzdeki:Ana pencere, WPF giriş penceresi kapandığında açılır
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com