Documente Academic
Documente Profesional
Documente Cultură
Evenimente Rutate
Comenzi WPF
Data Binding
Lect. dr. Florina Covaci
Eveniment WPF?
• Eveniment: un mesaj trimis de către un obiect la care
programul răspunde prin executarea unei bucăți de
cod
• Fiecare din aceste clase expune o varietate de obiecte comanda statice pe care le
putem utiliza in aplicatii; trebuie sa cream binding-uri si handlere pentru aceste
comenzi pt a le putea utiliza in aplicatie
Comenzi - arhitectura
• Obiectul Command: obiectul care reprezinta taskul
• Sursa comenzii: este controlul care generează comanda
• Handlerul comenzii: este metoda care se executa la invocarea
comenzii
• CommandBinding: obiectul utilizat de .NET Framework pentru a tine
evidenta asocierilor dintre surse si handlere
Implementarea unei comenzi
1. se decide comanda care se doreste a se utiliza
2. se asociază comanda cu un control sau cu un input
3. se crează metoda care gestionează comanda
4. se crează controlul CommandBinding care leagă obiectul Command
la handlerul de comandă si optional, la o metodă care gestionează
Command.CanExecute
5. se adaugă CommandBinding la collectia Commands a controlului sau
la controlul Window
Invocarea comenzii
• Prin asocierea ei cu un control folosind un input sau invocare cu un input
Crearea CommandBinding
-asociaza o comanda cu un command handler
CommandBinding abinding = new CommandBinding();
abinding.Command = ApplicationCommands.Find;
abinding.Executed += new ExecutedRoutedEventHandler(myCommandHandler);
this.CommandBindings.Add(abinding);
Comenzi Bubbling
• Comenzile se rostogolesc către containerele din varful ierarhiei in care
rezidă controlul unde se invoca comanda
• Fiecare control are propria colecție CommandBinding
• Se poate opri rostogolirea procesarea comenzii prin setarea
Handled=true
private void myCommandHandler(object sender,
ExecutedRoutedEventArgs e)
{
// Handle the command here
e.Handled = true;
}
Dezactivarea comenzilor
• Comenzile care nu sunt asociate in CommandBinding sunt automat dezactivate
• Fiecare control care are in proprietatea Command asignat o comandă disables devine la randul lui dezactivat
• Pentru a dezactiva comenzi care sunt assignate in Command si avem setat si CommandBinding se utilizează
Command.CanExecute
• Este un eveniment care determină dacă o comandă se poate executa