• 30.03.2017
  • 4 minute de citit
    • A

In acest articol

Specifica proprietatile unei surse de legare RelativeSource, care urmeaza sa fie utilizata intr-o extensie de marcare de legare sau cand se seteaza proprietatea RelativeSource a unui element de legare stabilit in XAML.

Utilizarea atributului XAML

<Binding RelativeSource = “{RelativeSource modeEnumValue}” … />

Utilizare atribut XAML (imbricat in extensia Binding)

<object property = “{Binding RelativeSource = {RelativeSource modeEnumValue} …}” … />

Utilizarea elementului obiect XAML

<Binding> <Binding.RelativeSource> <RelativeSource Mode = “modeEnumValue” /> </Binding.RelativeSource> </Binding>

-sau-

<Binding> <Binding.RelativeSource> <RelativeSource Mode = “FindAncestor” AncestorType = “{x: Type typeName}” AncestorLevel = “intLevel” /> </Binding.RelativeSource> </Binding>

Valori XAML

modeEnumValue Una dintre urmatoarele:

– Jetonul sinelui de sine; corespunde unei RelativeSource asa cum a fost creata cu proprietatea Mode setata la Self.

– Jetonul sir TemplatedParent; corespunde unei RelativeSource asa cum a fost creata cu proprietatea sa Mode setata la TemplatedParent.

– Jetonul sir PreviousData; corespunde unei surse relative, asa cum a fost creata, cu proprietatea Mode setata la PreviousData.

– Vedeti mai jos informatii despre modul FindAncestor.

FindAncestor Jetonul sir FindAncestor. Utilizarea acestui simbol intra intr-un mod prin care o sursa relativa specifica un tip stramos si, optional, un nivel stramos. Aceasta corespunde unei surse relative, asa cum a fost creata cu proprietatea sa de mod setata la FindAncestor. typeName Obligatoriu pentru modul FindAncestor. Numele unui tip, care umple proprietatea AncestorType. intLevel Optional pentru modul FindAncestor.

monjas lesvianas lesbianas scat
sexo en la playa nudista porno sub
viejas mexicanas follando hentai audio español
porno casero españa vidiosxxx
le pilla masturbandose xxx españa
parejas pilladas follando porno parejas
porno traducido español xxxabuelas
sol sanchez actriz porno chicas haciendo el amor

porno español jovencitas tetonas en la playa
corrida boca porno español jovencita
zofilia xxx moras follando
tetas amaters maduras españolas camara oculta
naomi woods sexo romantico
mamas incestuosas coños gordos
torrent porno cine xxx
porno gratis abuelos videos porno gratis caseros
masaje final feliz jovencitas masturbandose
folladoras triple anal
gordas corriendose maduras buenorras

Un nivel stramos (evaluat in directia parinte in arborele logic).

Observatii

Utilizarile de legare {RelativeSource TemplatedParent} sunt o tehnica cheie care abordeaza un concept mai larg de separare a IU a unui control si a logicii unui control. Aceasta permite legarea din definitia sablonului la parintele sablonat (instanta obiectului de executie in care se aplica sablonul). In acest caz, Extensia de marcare TemplateBinding este de fapt o prescurtare pentru urmatoarea expresie de legare: {Binding RelativeSource = {RelativeSource TemplatedParent}}. Utilizarile TemplateBinding sau {RelativeSource TemplatedParent} sunt relevante numai in cadrul XAML care defineste un sablon. Pentru mai multe informatii, consultati Extensia de marcare TemplateBinding.

{RelativeSource FindAncestor} este utilizat in principal in sabloane de control sau in compozitii de interfata UI autonome previzibile, pentru cazurile in care se asteapta intotdeauna un control intr-un arbore vizual de un anumit tip stramos. De exemplu, elementele unui control de articole ar putea folosi utilizarile FindAncestor pentru a se lega de proprietatile parintelui stramos de control al articolelor lor. Sau elementele care fac parte din compozitia de control dintr-un sablon pot utiliza legaturi FindAncestor la elementele parinte din aceeasi structura de compozitie.

In sintaxa elementului obiect pentru modul FindAncestor afisat in sectiunile Sintaxa XAML, a doua sintaxa a elementului obiect este utilizata special pentru modul FindAncestor. Modul FindAncestor necesita o valoare AncestorType. Trebuie sa setati AncestorType ca un atribut folosind o referinta x: Type Markup Extension la tipul de stramos de cautat. Valoarea AncestorType este utilizata atunci cand solicitarea de legare este procesata in timpul rularii.

Pentru modul FindAncestor, proprietatea optionala AncestorLevel poate ajuta la dezambiguizarea cautarii stramosului in cazurile in care exista, probabil, mai mult de un stramos de acel tip in arborele elementului.

Pentru mai multe informatii despre modul de utilizare a modului FindAncestor, consultati RelativeSource.

{RelativeSource Self} este util pentru scenarii in care o proprietate a unei instante ar trebui sa depinda de valoarea unei alte proprietati a aceleiasi instante si nici o relatie generala de proprietate de dependenta (cum ar fi constrangerea) nu exista deja intre aceste doua proprietati. Desi este rar ca exista doua proprietati pe un obiect, astfel incat valorile sa fie literalmente identice (si sa fie tipizate identic), puteti aplica, de asemenea, un parametru Converter la o legare care are {RelativeSource Self} si puteti utiliza convertorul pentru a converti intre sursa si tipuri de tinte. Un alt scenariu pentru {RelativeSource Self} este ca parte a unui MultiDataTrigger.

De exemplu, urmatorul XAML defineste un element dreptunghiular astfel incat, indiferent de valoarea introdusa pentru latime, dreptunghiul este intotdeauna un patrat: <Latimea dreptunghiului = “200” Inaltimea = “{Binding RelativeSource = {RelativeSource Self}, Path = Width } “… />

{RelativeSource PreviousData} este util fie in sabloanele de date, fie in cazurile in care legarile folosesc o colectie ca sursa de date. Puteti utiliza {RelativeSource PreviousData} pentru a evidentia relatiile dintre elementele de date adiacente din colectie. O tehnica asociata este de a stabili un MultiBinding intre elementele curente si anterioare din sursa de date si de a utiliza un convertor pe aceasta legare pentru a determina diferenta dintre cele doua elemente si proprietatile lor.

In exemplul urmator, primul TextBlock din sablonul de articole afiseaza numarul curent. A doua legare TextBlock este o legare multipla care are in mod nominal doi elemente obligatorii: inregistrarea curenta si o legare care foloseste in mod deliberat inregistrarea de date anterioara utilizand {RelativeSource PreviousData}. Apoi, un convertor pe MultiBinding calculeaza diferenta si il returneaza la legare.

<ListBox Name = “fibolist”> <ListBox.ItemTemplate> <DataTemplate> <StackPanel Orientation = “Horizontal”> <TextBlock Text = “{Binding}” /> <TextBlock>, difference = </TextBlock> <TextBlock> <TextBlock .Text> <MultiBinding Converter = “{StaticResource DiffConverter}”> <Binding /> <Binding RelativeSource = “{RelativeSource PreviousData}” /> </MultiBinding> </TextBlock.Text> </TextBlock> </StackPanel> </ DataTemplate> </ListBox.ItemTemplate> </ListBox>

Descrierea legarii datelor ca concept nu este acoperita aici, consultati Prezentare generala a legarii datelor.

In implementarea procesorului WPF XAML, tratarea acestei extensii de marcare este definita de clasa RelativeSource.

RelativeSource este o extensie de markup. Extensiile de markup sunt de obicei implementate atunci cand exista cerinta de a scapa de valorile atributelor pentru a fi altele decat valorile literale sau numele de handler, iar cerinta este mai globala decat simpla plasare a convertoarelor de tipuri pe anumite tipuri sau proprietati. Toate extensiile de markup din XAML utilizeaza caracterele {si} din sintaxa atributului lor, care este conventia prin care un procesor XAML recunoaste ca o extensie de markup trebuie sa proceseze atributul. Pentru mai multe informatii, consultati Extensii de marcare si WPF XAML.

Vezi si

  • Legare
  • Stil si sablonare
  • Prezentare generala XAML (WPF)
  • Extensii de markup si WPF XAML
  • Prezentare generala a legarii datelor
  • Declaratii obligatorii Prezentare generala
  • x: Tastati extensia Markup