Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 20694|Atsakyti: 0

[WPF] WPF RelayCommand

[Kopijuoti nuorodą]
Paskelbta 2017-12-18 21:16:49 | | |

Dažniausiai naudojamoje Wpf kūrimo programoje įdiegiame INotifyPropertyChanged sąsają ViewModel, kad pasiektume tikslą pranešti apie vartotojo sąsajos pakeitimus suaktyvindami įvykį PropertyChanged.

MVVMLight sistemoje ViewModel, kurį čia apibrėžiame, yra paveldėtas iš ViewModelBase, kuris yra įtrauktas į MvvmLight sistemą, ir ji įdiegė INotifyPropertyChanged sąsają.

Todėl, apibrėžiant ypatybę ViewModel, mums tereikia iškviesti RaisePropertyChanged(PropertyName), kad praneštume apie ypatybės pakeitimą.



Įvykiai yra svarbiausias būdas vartotojo sąsajai sąveikauti su foniniu kodu WPF/SL programose, ir, skirtingai nuo tradicinių metodų, įvykiai daugiausia tvarkomi susiejant su komandomis mvvm, todėl norėdami suprasti, kaip įvykiai tvarkomi mvvm, pirmiausia turite žinoti, kaip veikia komandos.

1. Komanda "RelayCommand"

WPF/SL komandos sukuriamos įdiegus ICommand sąsają. ICommand atskleidžia du metodus (Execute ir CanExecute) ir įvykį (CanExecuteChanged). Vykdyti vykdo su komanda susietą veiksmą. CanExecute nustato, ar komandą galima vykdyti dabartiniam komandos tikslui. Klasė, įgyvendinanti "ICommand" sąsają "MvvmLight", yra "RelayCommand", kuri inicijuoja "Execute" ir "CanExecute" metodus per konstruktorių, todėl konstruktorius perduoda delegato tipo parametrus, o "Execute" ir "CanExecute" vykdo deleguotus metodus, o atitinkamas "RelayCommand" kodas yra toks:


2. Comand atributų susiejimas

Paprastas pavyzdys: teksto laukelis ir mygtukas, teksto laukelis pasiekiamas tik tada, kai turinys nėra tuščias, o galimas mygtukas spustelėjamas, kad būtų rodomas teksto lauko turinys.




ViewMode:







Ankstesnis:android-TableLayout, taip pat "TableRow" naudojimas
Kitą:Pagrindinis langas atsidaro, kai WPF prisijungimo langas yra uždarytas
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com