From cb788a15794e22604119b9e8341f61ff207221a5 Mon Sep 17 00:00:00 2001 From: webbrain-one <295484252+webbrain-one@users.noreply.github.com> Date: Tue, 4 Aug 2026 18:22:34 +0300 Subject: [PATCH] docs: add Spanish README --- README.es-ES.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 README.es-ES.md diff --git a/README.es-ES.md b/README.es-ES.md new file mode 100644 index 0000000..c6839bb --- /dev/null +++ b/README.es-ES.md @@ -0,0 +1,22 @@ + + +# Enlazado de datos observable + +Típicamente, cuando se realiza enlazado de datos en aplicaciones XAML, hay dos opciones: propiedades de dependencia y INotifyPropertyChanged. Ambas tienen ventajas, pero son un poco verbosas o requieren clases base auxiliares. Otra desventaja de estos enfoques es que son difíciles de componer; es decir, es difícil expresar dependencias entre propiedades en el viewmodel. Por ejemplo, si una propiedad en el viewmodel debe basarse en el valor de otra propiedad, esto requiere código imperativo. Esto es adecuado para escenarios simples (aunque incluso eso puede volverse un poco desordenado), pero para escenarios complejos como el control de frecuencia basado en un tiempo de espera, como las sugerencias de una caja de búsqueda, por ejemplo, se vuelve mucho más complicado + +IObservables proporcionan una forma muy adecuada para componer flujos de eventos como esos, y también cuentan con muchos operadores integrados para manejar cosas como el control de frecuencia, el almacenamiento en búfer y el filtrado. Sin embargo, no hay soporte incorporado para enlazar hacia y desde observables. Es exactamente lo que proporciona esta biblioteca + +Ahora puedes tener un viewmodel que se vea así: + + public class ViewModel + { + public XamlObservable MyProperty { get; set; } = new XamlObservable(); + } + +y enlazarlo así: + + + +La propiedad Observable de MyProperty se puede establecer en cualquier observable y el enlazado se actualizará con cada valor: + + MyProperty.Observable = Observable.Interval(TimeSpan.FromSeconds(1)).Select(t => t.ToString());