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"