Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 20694|Svar: 0

[WPF] WPF RelayCommand

[Kopiera länk]
Publicerad på 2017-12-18 21:16:49 | | |

I vanligt använd WPF-utveckling implementerar vi INotifyPropertyChanged-gränssnittet i ViewModel för att uppnå syftet att meddela UI-ändringar genom att trigga PropertyChanged-händelsen.

I MVVMLight-ramverket ärvs ViewModel vi definierar här från ViewModelBase, som är inkapslat i MvvmLight-ramverket, och det har implementerat gränssnittet INotifyPropertyChanged.

Därför behöver vi vid definitionen av ViewModel-egenskapen bara anropa RaisePropertyChanged(PropertyName) för att meddela egenskapsändringen.



Händelser är det viktigaste sättet för UI:t att interagera med bakgrundskod i WPF/SL-applikationer, och till skillnad från traditionella metoder hanteras händelser främst genom att binda till kommandon i mvvm, så för att förstå hur händelser hanteras i mvvm måste du först vara bekant med hur kommandon fungerar.

1. RelayCommand-kommando

WPF/SL-kommandon skapas genom att implementera ICommand-gränssnittet. ICommand exponerar två metoder (Execute och CanExecute) och en händelse (CanExecuteChanged). Execute utför handlingen som är kopplad till kommandot. CanExecute avgör om ett kommando kan utföras på det aktuella kommandomålet. Klassen som implementerar ICommand-gränssnittet i MvvmLight är RelayCommand, som initierar metoderna Execute och CanExecute via konstruktorn, så konstruktorn skickar in parametrarna för delegattypen, och Execute och CanExecute exekverar de delegerade metoderna, och den relevanta koden för RelayCommand är följande:


2. Comand-attributbindning

Enkelt exempel: en TextBox och en knapp, TextBox är endast tillgänglig när innehållet inte är tomt, och den tillgängliga knappen klickas på för att visa Textbox-innehållet.




ViewMode:







Föregående:android-TableLayout samt användningen av TableRow
Nästa:Huvudfönstret öppnas när WPF-inloggningsfönstret stängs
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com