我有一个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
以某种方式受范围限制?
答案 0 :(得分:1)
我也遇到了这个问题。将UI元素绑定到命令参数始终为null。执行绑定时,元素可能没有准备好。
答案 1 :(得分:1)
如果您没有显式设置CommandBar.DataContext而不是使用ElementName作为绑定源,那么Binding with CommandBar似乎无法正常工作。
编辑:这是WinRT 8.1平台上的一个错误。 DataContext无法正确传播到所有Page子节点,现在已经修复并且可以正常工作。