Итак, с помощью SDK поведения я хочу связать событие Pivot с моей моделью просмотра. Связующие выглядит следующим образом:CommandParameter всегда передает EventArgs с привязкой ElementName, фактическое привязанное значение
<Pivot Grid.Row="1" x:Name="pvtMain"
ItemsSource="{Binding Items}"
HeaderTemplate="{StaticResource PivotHeaderTemplate}">
<Interactivity:Interaction.Behaviors>
<Core:EventTriggerBehavior EventName="PivotItemLoading">
<Core:InvokeCommandAction Command="{Binding LoadAdditionalData}"/>
</Core:EventTriggerBehavior>
</Interactivity:Interaction.Behaviors>
</Pivot>
Действие, которое выполняется в ViewModel выглядит следующим образом:
private void _CommandLoadAdditionalData(object parameter) {
var test = (parameter as PivotItemEventArgs);
}
Проблема выглядит следующим образом: я получаю сообщение об ошибке: type or namespace name 'PivotItemEventArgs' could not be found (are you missing a using directive or an assembly reference?)
.
Но когда я запускаю проект, все работает отлично. Когда копают немного глубже, PivotItemEventArgs находится в Windows.UI.Xaml.Controls, но он не будет найден в проекте Shared.
Я предполагаю, что это происходит из-за того, что элемент управления не является элементом управления Windows 8.
Теперь я просто хочу передать SelectedItem
вместо EventArgs. Я изменил свое CommandParameter
на следующее:
<Core:InvokeCommandAction Command="{Binding LoadAdditionalData}"
CommandParameter="{Binding ElementName=pvtMain, Path=SelectedItem}" />
Тем не менее, значение по-прежнему PivotItemEventArgs. Я что-то упускаю?