‫Bienvenido de nuevo.
‫Y en este video, vamos a hablar sobre las propiedades de dependencia, y son muy importantes tan pronto como
‫lleguemos a la vinculación de datos.
‫Y, en general, tiene sentido que comprenda cómo funcionan.
‫Así que sigamos adelante y creemos un botón dentro de nuestra cuadrícula.
‫Y simplemente lo hacemos creando la palabra clave del botón, como ya hemos visto varias veces.
‫Y aquí solo voy a asignar una altura de, digamos, cien píxeles y un ancho de
‫doscientos píxeles y luego el contenido de haga clic en mí.
‫Y ahora quiero usar algo llamado fondo.
‫Entonces, hay una propiedad llamada fondo y quiero asignarla a una alcantarilla, ¿de acuerdo?
‫Seguro.
‫Así que ese será mi botón.
‫Y como puede ver ahora, tiene solo una especie de color.
‫Quizás deberíamos hacerlo rojo.
‫Como si el rojo fuera bastante fuerte.
‫Violeta pálido, rojo.
‫Eso se ve bien.
‫Entonces un color simple.
‫Entonces, la idea detrás de esto es que quiero seguir adelante y explicarle qué son las propiedades dependientes,
‫dónde están y cómo crear sus propias propiedades dependientes.
‫Y es bastante fácil hacerlo con un botón, diría yo.
‫Y por cierto, este botón y de hecho lo voy a cerrar así porque quiero darle estilo a ese botón.
‫Entonces, dentro de las etiquetas de los botones, quiero agregar un poco más de estilo a ese botón.
‫Y el estilo debería ser un detonante.
‫Entonces quiero disparar.
‫Entonces, si entro en el área de botones, entonces quiero cambiar el color o algo así.
‫Así que voy a usar un estilo de punto de botón.
‫Ahora, ese estilo de botón necesita un estilo aquí para que pueda crear nuestro propio estilo aquí y voy a establecer un
‫objetivo para ese tipo de objetivo de estilo.
‫Va a ser un botón.
‫Ahora, eso no es suficiente porque lo que ahora quiero hacer es agregar un disparador a ese estilo.
‫Así que voy a usar desencadenadores de estilo.
‫Como este, y ahora puedo seguir adelante y crear hermosos gatillos que se activarán una vez que ocurra un evento y ya
‫hayamos visto eventos, pero eso es un evento un poco diferente.
‫Entonces es un disparador que podemos usar de la siguiente manera.
‫Podemos crear un disparador aquí y ese disparador tendrá una propiedad.
‫Y ese, por ejemplo, está sobre el mouse.
‫Entonces, una vez que el mouse está sobre ese botón, el valor debe establecerse en verdadero.
‫Y en ese desencadenante, necesito tener a Setas entonces.
‫Entonces, ¿qué pasará si ese es el caso?
‫Entonces, lo que voy a hacer es establecer el tamaño de fuente de la propiedad en el valor de treinta porque ahora el tamaño de fuente es mucho
‫más pequeño.
‫Así que aquí tenemos el botón, que tiene un ancho específico y un contenido y ancho y todo ese tipo de
‫cosas.
‫E hice un piloto que cargaba un rojo violento y luego le agregué un estilo a ese botón.
‫Y ese estilo que agregué es en realidad un detonante.
‫Entonces puedo, hay algo llamado desencadenadores de estilo, que desencadenará un cambio de estilo.
‫Y ese es el disparador que se ejecuta una vez que el mouse está sobre ese botón y eso configurará las cosas.
‫Entonces, lo que hará es establecer el tamaño de fuente en los valores que hemos especificado aquí y
‫ahora aquí asignamos ese valor verdadero, lo que significa que se activará cuando una vez que el mouse sobre el mouse sea verdadero.
‫Y eso es cierto una vez que pasamos el mouse sobre el mouse o una vez que estamos sobre el botón.
‫Entonces, si ejecutamos eso, deberíamos ver algunos cambios.
‫Y este es un enfoque bastante largo para simplemente tener una funcionalidad de desplazamiento, pero es mucho más lo que
‫queremos usar aquí.
‫Verá, coloco el cursor sobre él y el color cambia a este color azulado y luego tenemos este texto que parece
‫más grande.
‫Entonces el valor cambia a 30.
‫Así que eso es genial y todo.
‫Pero, ¿por qué necesitamos tener este código largo?
‫Bueno, la cosa es que estamos usando propiedades aquí.
‫Como puede ver, esto se llama propiedad.
‫Y en realidad el ancho es una propiedad, el contenido es una propiedad, el fondo es una propiedad.
‫Y dependen de las propiedades de dependencia o están conectados a las propiedades de dependencia y son importantes para
‫la minería de datos.
‫Como dije, lo que cubriremos en el próximo video o en uno de los próximos videos.
‫Pero también es importante tener este evento de activación o que el botón esté al tanto de lo que está
‫pasando.
‫Así que sigamos adelante y creemos un botón dentro de nuestro método de ventana principal.
‫Solo voy a crear un botón.
‫Y ahora quiero ver la clase en sí.
‫Así que vaya a la definición para que pueda simplemente presionar F 12 para llegar a la definición.
‫Lo que esto hará es mostrarme la clase de botón.
‫Y como puede ver, es una clase que hereda de botón.
‫Hay una propiedad de dependencia de solo lectura estática, que es la predeterminada, la propiedad está cancelada, la propiedad tiene
‫una propiedad predeterminada.
‫Así que no demasiado.
‫Pero lo que también puede ver es que en realidad hay una propiedad normal aquí.
‫Entonces esto es un SELLO.
‫Nuestra propiedad que tenemos aquí, que se llama esta predeterminada, está cancelada y está en
‫default y esas están conectadas a esas propiedades de dependencia.
‫Por lo tanto, representa una propiedad que se puede establecer a través de métodos como el mosaico, la animación de enlace de
‫datos y la herencia.
‫Entonces, la minería de datos, como dije, es algo que cubriremos más adelante en el diseño.
‫Eso es bueno.
‫Pero acabamos de terminar, diseñamos nuestro botón y podemos usar la animación y la herencia para eso.
‫Pero ahora echemos un vistazo más profundo a la base del botón para que sepamos que el botón hereda de la base del
‫botón.
‫Luego podemos ir a la definición de base de botones y verificar.
‫Está bien.
‫Es una clase de control de contenido.
‫Entonces, la base de botones hereda del control de contenido, que, bueno, la base de botones tiene un evento enrutado, como puede ver
‫aquí, evento de clic.
‫Y hemos visto la última vez que el evento DOT incluyó y también tiene muchas propiedades de
‫dependencia, como el modo de clic presionado, el comando de propiedad, el destino, etc.
‫Pero todavía no hemos tocado algunos de ellos.
‫Pero lo que es aún más interesante, si profundizamos aún más en el control de contenido, podemos
‫ver que hay una propiedad que dice tiene contenido.
‫Entonces este se ocupa de todo el contenido del botón.
‫Por ejemplo, el texto es un bloque de texto dentro de nuestro botón.
‫Entonces, si tenemos contenido dentro de nuestro botón, entonces.
‫Es manejado por esta clase o por esta clase de control de contenido, y de hecho podemos ir aún
‫más profundo, ir a la definición, y aquí encontraremos muchas propiedades de dependencia y eventos raíz.
‫Y esta clase de control tiene propiedades de dependencia llamadas propiedad de colocación, luego pincel de agua.
‫Entonces, el color del agua, luego una alineación de contenido vertical, una alineación de contenido horizontal.
‫Y ahora aquí este es interesante para nosotros porque lo usamos.
‫Es una propiedad de fondo y esa es exactamente la que hemos establecido en nuestro archivo Zemo.
‫Como puede ver aquí, dijimos que el fondo es rojo violeta pálido para que podamos acceder a esas propiedades de dependencia a
‫través de nuestras propiedades aquí.
‫Entonces estas son nuestras propiedades como tamaño de fuente, fuente, fondo familiar, primer plano, todo ese tipo de
‫cosas que usamos cuando trabajamos con controles y un botón, por ejemplo, como un control o un bloque de texto,
‫también es un control.
‫Entonces, todos heredan de esta clase de control y todos tienen estas propiedades de dependencia que
‫luego desencadenan e informan sobre, bueno, cambios.
‫Entonces, aquí vemos también que hay algo importante sobre las propiedades de dependencia, y es que siempre son estáticas
‫y son de solo lectura.
‫Entonces esto es muy importante.
‫Además, lo que puede ver es que siempre terminan con el nombre de la propiedad.
‫Así que aquí, siempre que definimos una propiedad de dependencia, decimos fondo, que es el mismo nombre que la
‫propiedad en sí.
‫Entonces aquí, por ejemplo, ¿dónde está?
‫Hay antecedentes, pero también el término propiedad al final.
‫Una historia muy larga.
‫Y cavamos muy profundo.
‫Pero luego le mostraremos un poco más cuáles son esas propiedades de dependencia y con qué estamos trabajando todo
‫el tiempo.
‫Así que estamos jugando con las propiedades, pero en realidad funcionan con las propiedades de dependencia.
‫¿Por qué necesitamos todo esto?
‫Bueno, solo para entender qué está pasando aquí con este disparador, YPF está usando una propiedad de dependencia
‫aquí.
‫Entonces, por ejemplo, esto es mouseover y mouseover proporciona una notificación en cadena a WPX con la ayuda de
‫las propiedades de dependencia, y eso nos permite establecer el valor en through.
‫Y también si lo miras, porque eso es algo que no he tocado.
‫En realidad, es la palabra error de compilación.
‫Así que tenemos que deshacernos de este botón aquí.
‫Pero aún no lo hemos cubierto ni abordado, lo cual es bastante importante como lo siguiente.
‫Entonces puede ver que tenemos este disparador y dice que la propiedad es el valor del mouseover.
‫Verdadero.
‫Y se activará una vez que esto termine la mayoría de las veces, ¿qué hará?
‫Bueno, establecerá propiedades como el tamaño de fuente en treinta.
‫Y déjame mostrarte de nuevo, está bien, lo veo.
‫Pero ahora, si dejo el botón, puede ver cómo está cambiando y eso se hace mediante esta propiedad de
‫dependencia.
‫Por lo tanto, informa sobre lo que está sucediendo y se está vendiendo, estableciendo el valor del tamaño de fuente de nuevo a
‫su valor original.
‫Entonces, como puede ver, solo es cierto mientras el mouse está sobre y eso es posible a través de las propiedades de dependencia.
‫Ahora, otra cosa sobre las propiedades de dependencia, porque dije que siempre deberían ser estáticas y de solo lectura,
‫y eso se debe a que todos los controles deberían estar compartidos y disponibles.
‫Por lo tanto, no desea que un control solo esté disponible una vez.
‫También desea que esté disponible para otras clases y otras vistas, etc.
‫Y es estático porque el valor no debe cambiarse después de la inicialización.
‫Y esta notificación en cadena, el activador de propiedades de dependencia es necesario para la minería de datos, la animación,
‫los activadores, como hemos visto aquí, el estilo, etc.
‫Ahora, si desea seguir adelante y crear su propia propiedad de dependencia, puede hacerlo durante mucho tiempo.
‫Entonces voy a crear una nueva propiedad en esta clase aquí.
‫Lo voy a llamar, de hecho, pongámoslo encima.
‫Voy a llamarlo público y mi propiedad.
‫Y como dije, esta es una propiedad de C LR.
‫Y aquí necesitaré tener un get y un set.
‫Pero eso no será suficiente.
‫Voy a solo los del segundo.
‫Creemos una propiedad de dependencia para esa propiedad.
‫Así que voy a crear una
‫propiedad de dependencia de solo lectura estática pública llamada mi propiedad de dependencia de propiedad de dependencia.
‫Y ese debe inicializarse inmediatamente con el registro de puntos de propiedad de dependencia.
‫Así que estamos registrando una nueva propiedad de dependencia y necesitamos asignar varias cosas.
‫Por ejemplo, necesitamos tener un nombre de cadena.
‫Solo lo voy a llamar.
‫Mi propiedad, entonces necesitamos un tipo de propiedad, entonces, ¿de qué tipo debería ser esta propiedad?
‫Y como hemos visto aquí, la propiedad que es de mi propiedad es de tipo.
‫Entonces voy a usar el tipo de tipo de int a continuación.
‫Necesitamos escribir dueño de la propiedad.
‫Entonces, el propietario del tipo y el propietario de este tipo de mi propiedad es mi clase de ventana principal porque, bueno, está en
‫la principal sin clase.
‫Así que simplemente decimos que type of será la ventana principal y ahora también debemos entregar los metadatos de la propiedad.
‫Así que voy a crear una nueva propiedad de metadatos, que será cero.
‫Así que solo voy a ingresar cero aquí.
‫No hay nada de lujos y eso es todo.
‫Así es como podemos crear una propiedad de dependencia.
‫Y ahora mi propiedad misma también debería estar influenciada por esta propiedad de dependencia, por supuesto.
‫Y para hacer eso, necesito seguir adelante y ajustar el get and set.
‫Entonces, a Geter se le debe devolver nuestro valor de obtención, mi propiedad de dependencia.
‫Pero ahora tenemos el problema de que el valor de la propiedad de dependencia es de tipo propiedad de dependencia.
‫Y a pesar de que dijimos que es de tipo int, todavía necesitamos convertirlo en él.
‫Así que lo convertiré en un número entero y ahora podemos seguir adelante y acercarnos a la dispersión en la
‫declaración.
‫Derecha.
‫Mejor dicho.
‫Y ahora el setter debe tener un valor establecido.
‫Y aquí configuro mi propiedad de dependencia al valor que se le dio.
‫Así que eso es lo que estamos haciendo aquí y así es como puede crear su propia propiedad de dependencia.
‫Entonces esto es lo importante.
‫Solo lectura estática, debe crearlo como un tipo de propiedad de dependencia.
‫Puede darle un nombre, luego debe registrarlo y debe darle un nombre, un tipo.
‫Y dónde está el propietario o cuáles son los propietarios de la clase en la que se creó la propiedad.
‫Y luego debe entregar algunos metadatos de propiedad para poder agregar algunos metadatos de propiedad adicionales.
‫Como puede ver, hay cuatro jefes supremos diferentes, y puede entregar un objeto, que
‫es el valor predeterminado, y solo digo, OK, valor predeterminado cero.
‫Entonces, mi propiedad se establecerá por defecto en cero debido a los metadatos de mi propiedad que configuré aquí.
‫De acuerdo.
‫Hay muchas cosas aquí.
‫Y dependiendo de lo que vaya a desarrollar, es posible que nunca cree su propia propiedad de dependencia.
‫Así que no te preocupes.
‫Si en algún momento necesita usar propiedades de dependencia, simplemente vea cómo crear las suyas propias.
‫De lo contrario, simplemente puede usar las propiedades que teníamos aquí.
‫Y para un usuario final o digamos para un desarrollador que simplemente crea la interfaz de usuario y no va a ser tan
‫relevante.
‫Pero solo quería mostrarte cómo se construyen las cosas y qué es importante aquí.
‫Está bien.
‫Así que nos vemos en el siguiente video.