c# - Enlace a un comando MainViewModel desde un botón ItemsControl en Avalonia

CorePress2024-01-25  11

Estoy intentando crear un enlace MVVM ReactiveUI desde un botón ItemsControl en Avalonia En WPF, esto se haría mediante Freezable BindingProxy. Sin embargo, parece que Freezable no está disponible en Avalonia. ¿Cómo debería crearse tal vinculación?

            <ItemsControl Items="{Binding MyQueue}">
              <ItemsControl.ItemTemplate>
                <DataTemplate>
                  <Button Content="My Button"
                          HorizontalAlignment="Center" VerticalAlignment="Center"
                          CommandParameter="{Binding}"
                          Command="{Binding MySpecialCmd}"/>
                </DataTemplate>
              </ItemsControl.ItemTemplate>
            </ItemsControl>

Referencias: https://stackoverflow.com/questions/22073740/binding-visibility-for-datagridcolumn-in-wpf\ https://thomaslevesque.com/2011/03/21/wpf-how-to-bind-to-data-when-the-datacontext-is-not-inherited/



------------------------------------

Muchas gracias a @maxkatz6 por el gitter de AvaloniaUI. Aquí está la solución:

{Binding $parent[ItemsControl].DataContext.MySpecialCmd}
           <ItemsControl Items="{Binding MyQueue}">
              <ItemsControl.ItemTemplate>
                <DataTemplate>
                  <Button Content="My Button"
                          HorizontalAlignment="Center" VerticalAlignment="Center"
                          CommandParameter="{Binding}"
                          Command="{Binding $parent[ItemsControl].DataContext.MySpecialCmd}"/>
                </DataTemplate>
              </ItemsControl.ItemTemplate>
            </ItemsControl>



------------------------------------

En Avalonia versión 11.0.0 es necesario desactivar el parámetro CompileBinding.

x:CompileBindings="Falso"

randomThread
Calcule 2,5% por debajo y 2,5% por encima de la media en Pythonarranque de primavera: no se llama al método CommandLineRunner run()Excel: el mismo texto del cuadro de mensaje dependiendo de cualquiera de las múltiples entradas posibles de InputBoxfirebase: el parámetro es nulo en lugar de una identificación con ModalRoute.of()javascript - Swiper ¿cómo hacer que la imagen cubra todo el ancho?html: uso de consulta de medios para ejecutar