将CommandParameter绑定到CommandBar外部的UI元素

时间:2014-07-16 13:01:59

标签: c# xaml windows-runtime

我有一个AppBarButton,其命令绑定到CommandBar中的viewmodel(WinRT - windows 8.1):

<CommandBar.PrimaryCommands>
   <AppBarButton Name="someOtherButton" ../>
   <AppBarButton Name="CropImageButton" Icon="Crop" Label="Crop image" 
                 Command="{Binding CropImageCommand}" CommandParameter="{Binding ElementName=croppableImage, Path=OrginalSelectedArea}" />
</CommandBar.PrimaryCommands>            

不幸的是,这不起作用 - 参数始终为null。但是这种绑定有效:

CommandParameter={Binding ElementName=someOtherButton, ..}

我通过在viewmodel中创建SelectedArea属性而不是使用CommandParameter来修复此问题,但我很好奇是绑定到ElementName以某种方式受范围限制?

2 个答案:

答案 0 :(得分:1)

我也遇到了这个问题。将UI元素绑定到命令参数始终为null。执行绑定时,元素可能没有准备好。

答案 1 :(得分:1)

如果您没有显式设置CommandBar.DataContext而不是使用ElementName作为绑定源,那么Binding with CommandBar似乎无法正常工作。

编辑:这是WinRT 8.1平台上的一个错误。 DataContext无法正确传播到所有Page子节点,现在已经修复并且可以正常工作。