Quiero vincular una propiedad de solo lectura de un control a mi modelo de vista para que el valor esté disponible en el modelo de vista.Cómo enlazar una propiedad de control WPF de solo lectura (por ejemplo, ActualWidth) para que su valor sea accesible en el modelo de vista?
¿Cuál es la mejor manera de hacerlo?
Por ejemplo, me gustaría vincular ActualWidth
a una propiedad en mi modelo de vista. El valor de ancho lo genera WPF usando su lógica de diseño, por lo que no puedo generar este valor en mi modelo de vista y llevarlo a la propiedad de control, como sería normalmente el caso. En cambio, necesito que WPF genere el valor y lo aplique al modelo de vista.
me acaba de utilizar Mode=OneWayToSource
, pero esto no funciona para propiedades de sólo lectura:
<Border
...
ActualWidth="{Binding MyDataModelWidth, Mode=OneWayToSource}"
>
... child controls ...
</Border>
La forma en que estoy haciendo en este momento es manejar SizeChanged
de la frontera y el código subyacente se conecta el valor en el modelo de vista, pero esto no se siente del todo bien.
¿Alguien ya ha resuelto este problema?
ACTUALIZACIÓN: Mi pregunta es, efectivamente, un duplicado de éste: Pushing read-only GUI properties back into ViewModel
impresionante. ambos casi al mismo tiempo, con el mismo enlace. ¡jaja! – Nawaz
El segundo enlace es una buena solución reutilizable cuya base es lo que estás haciendo (usando el evento SizeChanged). – sowee15
Podría incluir la esencia de la respuesta, una respuesta en StackOverflow no debería contener enlaces ... –