‫Welkom terug.
‫En in deze video gaan we het hebben over afhankelijkheidseigenschappen, en ze zijn super belangrijk
‫zodra we bij gegevensbinding komen.
‫En over het algemeen is het logisch dat u begrijpt hoe ze werken.
‫Dus laten we doorgaan en een knop maken in ons raster.
‫En dat doen we gewoon door het trefwoord button aan te maken, zoals we al meerdere keren hebben gezien.
‫En hier ga ik gewoon een hoogte toewijzen van, laten we zeggen, honderd pixels en een
‫breedte van tweehonderd pixels en dan de inhoud van klik me.
‫En nu wil ik iets gebruiken dat achtergrond heet.
‫Dus er is een eigenschap genaamd background en ik wil dat toewijzen aan een riool, oké?
‫Zeker.
‫Dus dat wordt mijn knop.
‫En zoals je nu kunt zien, heeft het gewoon een soort kleur.
‫Misschien moeten we hem rood maken.
‫Alsof rood behoorlijk sterk is.
‫Bleek violet, rood.
‫Dat ziet er goed uit.
‫Een simpele kleur dus.
‫Het idee hierachter is dat ik u wil uitleggen wat afhankelijkheden zijn, waar ze zijn en
‫hoe u uw eigen afhankelijkheden kunt maken.
‫En het is vrij eenvoudig om het met een knop te doen, zou ik zeggen.
‫En trouwens, deze knop en eigenlijk ga ik hem zo sluiten omdat ik die knop wil stylen.
‫Dus binnen de knoptags wil ik wat meer stijl aan die knop toevoegen.
‫En de stijl moet een trigger zijn.
‫Dus ik wil triggeren.
‫Dus als ik in het knoppengebied kom, dan wil ik de kleur veranderen of iets dergelijks.
‫Dus ik ga een knoopstip-stijl gebruiken.
‫Nu, die knopstijl heeft hier een stijl nodig, dus ik kan hier onze eigen stijl creëren en ik ga
‫een doel instellen voor dat stijldoeltype.
‫Het wordt een knoop.
‫Dat is niet genoeg, want wat ik nu wil doen, is een trigger aan die stijl toevoegen.
‫Dus ik ga stijltriggers gebruiken.
‫Zoals deze, en nu kan ik doorgaan en mooie kleine triggers maken die worden geactiveerd zodra een gebeurtenis plaatsvindt en we
‫hebben al gebeurtenissen gezien, maar dat is een iets andere gebeurtenis.
‫Het is dus een trigger die we als volgt kunnen gebruiken.
‫We kunnen hier een trigger maken en die trigger heeft een eigenschap.
‫En die is bijvoorbeeld mouse-over.
‫Dus als de muis eenmaal over die knop is, moet de waarde worden ingesteld op waar.
‫En in die trigger moet ik dan Setas hebben.
‫Dus wat zal er gebeuren als dat het geval is?
‫Dus wat ik ga doen, is dat ik de lettergrootte van de eigenschap op dertig ga zetten, omdat de lettergrootte nu een stuk
‫kleiner is.
‫Dus hier hebben we de knop, die een specifieke breedte heeft en een inhoud en breedte en al dat soort
‫dingen.
‫En ik maakte een pilot die de lading gewelddadig rood maakte en toen voegde ik een stijl toe aan die knop.
‫En die stijl die ik heb toegevoegd is eigenlijk een trigger.
‫Dus ik kan er iets zijn dat stijltriggers wordt genoemd, wat een stijlverandering zal veroorzaken.
‫En dat is de trigger die wordt uitgevoerd zodra de muis over die knop gaat en dat zal dingen instellen.
‫Dus wat het zal doen, is dat het de lettergrootte instelt op de waarden die we hier hebben
‫opgegeven en nu wijzen we die waarde hier true toe, wat betekent dat het wordt geactiveerd wanneer dit eenmaal is mouseover waar is.
‫En dat is waar als we eenmaal met onze muis over onze muis gaan of als we Mozes over de knop hebben.
‫Dus als we dat uitvoeren, zouden we wat veranderingen moeten zien.
‫En dit is een vrij lange benadering om alleen een hover-functionaliteit te hebben, maar het is veel meer dat we
‫hier willen gebruiken.
‫Dus je ziet, ik zweef erover en de kleur verandert in deze blauwachtige kleur en dan hebben we deze tekst die dan
‫groter lijkt.
‫Dus de waarde verandert in 30.
‫Dus dat is geweldig en zo.
‫Maar waarom hebben we deze lange code nodig?
‫Het punt is dat we hier eigenschappen gebruiken.
‫Zoals je kunt zien, wordt dit ding eigendom genoemd.
‫En eigenlijk is de breedte een eigenschap, de inhoud een eigenschap, achtergrond is een eigenschap.
‫En ze zijn afhankelijk van afhankelijkheidseigenschappen of ze zijn verbonden met afhankelijkheidseigenschappen en ze zijn
‫belangrijk voor datamining.
‫Zoals ik al zei, wat we zullen behandelen in de volgende video of een van de volgende video's.
‫Maar het is ook belangrijk om deze triggergebeurtenis te hebben of dat de knop op de hoogte is van wat er aan de hand
‫is.
‫Dus laten we doorgaan en een knop maken in onze hoofdvenstermethode.
‫Ik ga gewoon een knop maken.
‫En nu wil ik de klas zelf bekijken.
‫Ga dus naar de definitie zodat u eenvoudig op F 12 kunt drukken om naar de definitie te gaan.
‫Wat dit zal doen, is dat het me de knopklasse laat zien.
‫En zoals je kunt zien, is het een klasse die erft van op knoppen gebaseerd.
‫Er is een statische alleen-lezen afhankelijkheidseigenschap, die standaard is, eigenschap is geannuleerd, eigenschap
‫heeft standaardeigenschap.
‫Dus niet te veel.
‫Maar wat je ook kunt zien is dat hier eigenlijk een normaal pand is.
‫Dit is dus een SEAL.
‫Onze eigenschap die we hier hebben, die deze standaard wordt genoemd, is geannuleerd en is
‫in gebreke gebleven en die zijn verbonden met die afhankelijkheidseigenschappen.
‫Het vertegenwoordigt dus een eigenschap die kan worden ingesteld via methoden zoals tegels, databinding-animatie
‫en overerving.
‫Dus datamining, zoals ik al zei, is iets dat we later bij styling zullen bespreken.
‫Dat is goed.
‫Maar we hebben net onze knop gestyled en daar kunnen we animatie en overerving voor gebruiken.
‫Maar laten we nu dieper in de knopbasis kijken, zodat we weten dat die knop van de knopbasis
‫erft.
‫Dan kunnen we naar de definitie van buttonbase gaan en controleren.
‫Oke.
‫Het is een klasse voor inhoudscontrole.
‫Dus de knopbasis erft van inhoudscontrole, die, nou ja, de knopbasis heeft een gerouteerde gebeurtenis, zoals je hier
‫kunt zien, klikgebeurtenis.
‫En we hebben de laatste keer gezien dat de DOT-gebeurtenis is opgenomen en het heeft ook
‫tal van afhankelijkheidseigenschappen, zoals de ingedrukte klikmodus, het eigendomscommando, het doel, enzovoort.
‫Maar sommige daarvan hebben we nog niet aangeraakt.
‫Maar wat nog interessanter is, als we nog dieper ingaan op de inhoudscontrole, kunnen we zien dat er
‫een eigenschap is die zegt dat het inhoud heeft.
‫Dus deze zorgt voor alle inhoud van de knop.
‫De tekst is bijvoorbeeld een tekstblok binnen onze knop.
‫Dus als we inhoud binnen onze knop hebben, dan.
‫Het wordt afgehandeld door deze klasse of door deze klasse voor inhoudscontrole, en eigenlijk kunnen we nog dieper gaan,
‫naar de definitie gaan, en hier zullen we tal van afhankelijkheidseigenschappen vinden en gebeurtenissen rooten.
‫En deze controleklasse heeft afhankelijkheidseigenschappen die puteigenschap worden genoemd en vervolgens waterpenseel.
‫Dus de kleur van het water, dan een verticale uitlijning van de inhoud, horizontale uitlijning van de inhoud.
‫En nu is deze interessant voor ons omdat we hem hebben gebruikt.
‫Het is een achtergrondeigenschap en dat is precies degene die we in ons Zemo-bestand hebben ingesteld.
‫Zoals je hier kunt zien, zeiden we dat de achtergrond bleek violetrood was, zodat we toegang hebben tot die afhankelijke eigenschappen
‫via onze eigenschappen hier.
‫Dit zijn dus onze eigenschappen zoals lettergrootte, lettertype, familieachtergrond, voorgrond, al dat soort dingen die
‫we gebruiken als we werken met besturingselementen en een knop, bijvoorbeeld als besturingselement of tekstblok, het is
‫ook een besturingselement.
‫Dus ze erven allemaal van deze controleklasse en ze hebben allemaal deze afhankelijkheidseigenschappen die vervolgens leiden
‫tot en informeren over, nou ja, veranderingen.
‫Dus hier zien we ook dat er iets belangrijks is aan afhankelijkheidseigenschappen, en dat is dat ze altijd
‫statisch zijn en alleen-lezen zijn.
‫Dit is dus erg belangrijk.
‫Wat u ook kunt zien, is dat ze altijd eindigen met de naam van de eigenschap.
‫Dus hier, wanneer we een afhankelijkheidseigenschap definiëren, zeggen we achtergrond, wat dezelfde naam is als de
‫eigenschap zelf.
‫Dus hier, bijvoorbeeld, waar is het?
‫Er is achtergrond, maar dan ook nog de term eigendom aan het eind.
‫Heel lang verhaal dus.
‫En we groeven heel diep.
‫Maar dan laten we je wat meer zien wat die afhankelijkheidseigenschappen zijn en waar we de hele tijd
‫mee werken.
‫Dus we spelen met eigenschappen, maar ze werken eigenlijk met de afhankelijkheidseigenschappen.
‫Waarom hebben we dit allemaal nodig?
‫Om te begrijpen wat hier met deze trigger gebeurt, gebruikt YPF hier een afhankelijkheidseigenschap.
‫Dit is bijvoorbeeld mouseover en is mouseover levert een kettingmelding aan WPX met behulp van afhankelijkheidseigenschappen, en dat
‫stelt ons in staat om de waarde in te stellen op door.
‫En dan ook als je het bekijkt, want dat is iets dat ik niet heb aangeraakt.
‫Het is eigenlijk het woord bouwfout.
‫We moeten dus van deze knop af.
‫Maar we hebben het nog niet besproken of besproken, wat best belangrijk is als het volgende.
‫Dus je kunt zien dat we deze trigger hebben en er staat dat de eigenschap een mouseover-waarde is.
‫Waar.
‫En het zal worden geactiveerd zodra dit het meest over is, wat zal het doen?
‫Welnu, het zal eigenschappen zoals lettergrootte instellen op dertig.
‫En laat me je nog een keer laten zien, oké, ik zie het.
‫Maar als ik nu de knop verlaat, kun je zien hoe het terug verandert en dat wordt gedaan door deze
‫afhankelijkheidseigenschap.
‫Dus het informeert over wat er gaande is en het verkoopt, en zet de waarde van de lettergrootte terug naar
‫zijn oorspronkelijke waarde.
‫Dus zoals je kunt zien, is het alleen waar als de muis voorbij is en dat is mogelijk via afhankelijkheidseigenschappen.
‫Nu nog iets over afhankelijkheidseigenschappen, omdat ik zei dat ze altijd statisch en alleen-lezen moeten zijn, en
‫dat is omdat alle besturingselementen moeten worden gedeeld en beschikbaar moeten zijn.
‫Je wilt dus niet dat een besturing maar één keer beschikbaar is.
‫U wilt ook dat het beschikbaar is voor andere klassen en andere weergaven, enzovoort.
‫En het is statisch omdat de waarde niet mag worden gewijzigd na initialisatie.
‫En deze kettingmelding, de afhankelijkheidseigenschappen-trigger, is vereist voor datamining, voor animatie, voor triggers, zoals we
‫hier hebben gezien, voor styling, enzovoort.
‫Als u nu door wilt gaan en uw eigen afhankelijkheidseigenschap wilt maken, kunt u dat een heel eind doen.
‫Dus ik ga hier een nieuwe eigenschap in deze klasse maken.
‫Ik ga het noemen, laten we het er bovenop zetten.
‫Ik noem het openbaar en mijn eigendom.
‫En zoals ik al zei, dit is een eigendom van C LR.
‫En hier heb ik een get en een set nodig.
‫Maar dat zal niet genoeg zijn.
‫Ik ga alleen naar die in de tweede.
‫Laten we een afhankelijkheidseigenschap maken voor die mijn eigendom.
‫Dus ik ga
‫een openbare statische alleen-lezen afhankelijkheidseigenschap maken, genaamd mijn afhankelijkheidseigenschap.
‫En die moet meteen worden geïnitialiseerd met het dot-register van de afhankelijkheidseigenschap.
‫We registreren dus een nieuwe afhankelijkheidseigenschap en we moeten meerdere dingen toewijzen.
‫We moeten bijvoorbeeld een stringnaam hebben.
‫Ik ga het gewoon noemen.
‫Mijn woning, dan hebben we een woningtype nodig, dus van welk type moet deze woning zijn?
‫En zoals we hier hebben gezien, is het eigendom dat mijn eigendom is van het type.
‫Dus ik ga het volgende type van het type int gebruiken.
‫We moeten eigendomseigenaar typen.
‫Dus de eigenaar van het type en de eigenaar van dit type van mijn eigendom is mijn hoofdvensterklasse omdat, nou ja, het is in
‫de hoofdklasse zonder klasse.
‫Dus we zeggen gewoon dat type van het hoofdvenster wordt en nu moeten we ook de metadata van de eigenschap overhandigen.
‫Dus ik ga nieuwe metadata voor eigenschappen maken, die nul zullen zijn.
‫Dus ik ga hier gewoon nul invullen.
‫Niets bijzonders daar en dat is het.
‫Dus zo kunnen we een afhankelijkheidseigenschap maken.
‫En nu moet mijn eigenschap zelf natuurlijk ook worden beïnvloed door deze afhankelijkheidseigenschap.
‫En om dat te doen, moet ik doorgaan en de get en set aanpassen.
‫Dus Geter moet onze get-waarde worden geretourneerd, mijn afhankelijkheidseigenschap.
‫Maar nu hebben we het probleem dat de waarde van de afhankelijkheidseigenschap van het type afhankelijkheidseigenschap is.
‫En hoewel we zeiden dat het van het type int is, moeten we dat nog steeds gebruiken om erin te zijn.
‫Dus ik ga het in een geheel getal gieten en nu kunnen we doorgaan en in de buurt komen om over de verklaring te
‫verspreiden.
‫Rechts.
‫Beter gezegd.
‫En nu zou de setter de ingestelde waarde moeten zijn.
‫En hier stel ik mijn afhankelijkheidseigenschap in op de waarde die is gegeven.
‫Dat is dus wat we hier doen en zo kunt u uw eigen afhankelijkheidseigenschap maken.
‫Dit is dus wat belangrijk is.
‫Statisch alleen-lezen, u moet het maken als een afhankelijkheidseigenschapstype.
‫Je kunt het een naam geven, dan moet je het registreren en je moet het een naam geven, een type.
‫En waar de eigenaar is of wat de eigenaren zijn van de klasse waarin het onroerend goed is gemaakt.
‫En dan moet u enkele property-metadata overhandigen, zodat u wat extra property-metadata kunt toevoegen.
‫Zoals je kunt zien, zijn er vier verschillende overlords, en je kunt een object overhandigen,
‫wat de standaardwaarde is, en ik zeg alleen, OK, standaardwaarde nul.
‫Dus mijn eigendom wordt standaard nul vanwege de metadata van mijn eigendom die ik hier heb ingesteld.
‫Oke.
‫Dus genoeg spullen hier.
‫En afhankelijk van wat u gaat ontwikkelen, maakt u misschien nooit uw eigen afhankelijkheidseigenschap.
‫Geen zorgen dus.
‫Als u op een gegeven moment afhankelijkheidseigenschappen moet gebruiken, kijk dan eens hoe u uw eigen eigenschappen kunt maken.
‫Anders kunt u gewoon de eigendommen gebruiken die we hier hadden.
‫En voor een eindgebruiker of laten we zeggen voor een ontwikkelaar die alleen de gebruikersinterface bouwt en het zal niet zo relevant
‫zijn.
‫Maar ik wilde je even laten zien hoe de zaken in elkaar zitten en wat hier belangrijk is.
‫Oke.
‫Dus tot ziens in de volgende video.