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}}}" />