У меня есть AppBarButton с командой, привязанной к viewmodel (WinRT
- Windows 8.1) внутри CommandBar:
<CommandBar.PrimaryCommands>
<AppBarButton Name="someOtherButton" ../>
<AppBarButton Name="CropImageButton" Icon="Crop" Label="Crop image"
Command="{Binding CropImageCommand}" CommandParameter="{Binding ElementName=croppableImage, Path=OrginalSelectedArea}" />
</CommandBar.PrimaryCommands>
К сожалению, это не работает - параметр всегда равен нулю. Однако эта привязка работает:
CommandParameter={Binding ElementName=someOtherButton, ..}
Я исправил это, создав свойство SelectedArea
в viewmodel вместо использования CommandParameter
но мне любопытно, что привязки к ElementName
каким-то образом ограничены областью видимости?
Кажется, что привязка к CommandBar не работает должным образом, если вы явно не устанавливаете CommandBar.DataContext, а не используете ElementName в качестве источника для привязки.
EDIT: это была ошибка на платформе WinRT 8.1. DataContext не будет правильно распространяться на всех дочерних страниц страницы, теперь это исправлено и работает.
Я также встретил эту проблему. Привязка элемента UI к параметру команды всегда получает значение null. Возможно, элемент не готов при выполнении привязки.