with tapgesturerecognizer wpf binding commandparameter

wpf - tapgesturerecognizer - xamarin execute icommand



pasando la ventana actual como un parĂ¡metro de comando (3)

¿Cómo puedo pasar la ventana en la que estoy actualmente como parámetro a un comando?

Me gusta hacer esto en el marcado XAML:

<Button Command="CommandGetsCalled" CommandParameter="-this?-" />


En mi situación, ninguna de las respuestas proporcionadas funcionó.

Esto funcionó para mí:

<window x:Name="myWindow"> <Button Command="Command" CommandParameter={x:Reference Name=myWindow}/> </window>


Hay dos maneras de pensar para hacer esto: asigne un nombre a la ventana (a través de un atributo x:Name en la etiqueta de la Window , y luego cree un enlace como este (asume que el nombre de la ventana es ''ThisWindow''):

<Button Command="CommandGetsCalled" CommandParameter="{Binding ElementName=ThisWindow}" />

Para algo más general (no se basa en darle un nombre a la ventana actual), el enlace se puede construir así:

<Button Command="CommandGetsCalled" CommandParameter="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Window}}}" />


Podrías intentar enlazar a un RelativeSource

Si quieres pasar el botón como parámetro:

<Button Command="CommandGetsCalled" CommandParameter="{Binding RelativeSource={RelativeSource Self}}" />

Si quieres pasar la ventana como parámetro:

<Button Command="CommandGetsCalled" CommandParameter="{Binding RelativeSource={ RelativeSource AncestorType={x:Type Window}}}" />