Pregunta

¿cómo puedo pasar a la ventana Actualmente estoy en como un parámetro para un comando?

Me gusta hacer esto en XAML-marcado:

<Button Command="CommandGetsCalled" CommandParameter="-this?-" />
¿Fue útil?

Solución

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

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

Para algo más general (no se basa en dar a la ventana actual un nombre), la unión se puede construir de esta manera:

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

Otros consejos

Usted podría intentar unirse a una RelativeSource

Si desea pasar el botón como un parámetro:

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

Si desea pasar la ventana como un parámetro:

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

En mi situación ninguna de las respuestas proporcionadas trabajó.

Esto funcionó para mí:

<window x:Name="myWindow">
 <Button Command="Command" CommandParameter={x:Reference Name=myWindow}/>
</window>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top