tengo una orden que firmo de mi archivo XAML utilizando la siguiente sintaxis estándar:pasar dos parámetros de comando utilizando un WPF vinculante
<Button Content="Zoom" Command="{Binding MyViewModel.ZoomCommand}"/>
Esto funcionó bien hasta que me di cuenta que tenía dos piezas de información de la vista para completar esta operación de la manera esperada por los usuarios (el ancho y alto del lienzo de forma específica).
Parece que es posible pasar una matriz como un argumento a mi mando, pero no veo que exista una forma de especificar la unión a mis dos propiedades del lienzo en el CommandParameter:
<Button Content="Zoom"
Command="{Binding MyViewModel.ZoomCommand"
CommandParameter={Binding ElementName=MyCanvas, Path=Width}"/>
¿Cómo paso tanto ancho como alto a mi comando? No parece que esto sea posible usando comandos de XAML y necesito conectar un manejador de clics en mi código detrás para que esta información pase a mi método de zoom.
Gracias Kent - que era exactamente lo que estaba buscando. Me gusta su primer acercamiento mejor para que la máquina virtual conozca el "estado" de la vista a través de un enlace sin que yo tenga que pasar ningún parámetro, pero aún puedo probarlo. No estoy seguro de que me funcione aquí, ya que necesito la vista para hacer que el lienzo sea lo más grande posible y pasar este valor a la máquina virtual. Si lo enlace, ¿no tendré que establecer el ancho en la VM? En cuyo caso, la máquina virtual está vinculada a la vista? – JasonD
@Jason: puedes hacerlo de cualquier manera. Es decir, haga que los cambios de inserción de vista vuelvan al modelo de vista, o haga que el modelo de vista modifique la vista. Un enlace TwoWay dará como resultado que cualquiera de las opciones esté disponible para usted. –
en mi programa parámetro de método OnExecute es una matriz con valores nulos pero, en el convertidor los valores son los esperados –