从 Avalonia 中的 ItemsControl 按钮绑定到 MainViewModel 命令

And*_*nce 2 c# mvvm reactiveui avaloniaui

我正在尝试从 Avalonia 中的 ItemsControl 按钮创建 ReactiveUI MVVM 绑定,在 WPF 中,这将通过 Freezable BindingProxy 完成。不过,Freezable 似乎在 Avalonia 中不可用。应该如何创建这样的绑定?

            <ItemsControl Items="{Binding MyQueue}">
              <ItemsControl.ItemTemplate>
                <DataTemplate>
                  <Button Content="My Button"
                          HorizontalAlignment="Center" VerticalAlignment="Center"
                          CommandParameter="{Binding}"
                          Command="{Binding MySpecialCmd}"/>
                </DataTemplate>
              </ItemsControl.ItemTemplate>
            </ItemsControl>
Run Code Online (Sandbox Code Playgroud)

参考文献:
/sf/ask/1545161831/\ https://thomaslevesque.com/2011/03/21/wpf-how-to-bind-to-数据上下文未继承时的数据/

And*_*nce 5

非常感谢 AvaloniaUI gitter 上的 @maxkatz6。这是解决方案:

{Binding $parent[ItemsControl].DataContext.MySpecialCmd}
Run Code Online (Sandbox Code Playgroud)
           <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>
Run Code Online (Sandbox Code Playgroud)