2015-05-01 3 views
1

Итак, с помощью 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. Я что-то упускаю?

ответ

1

Итак, после некоторых попыток я наткнулся на «решение».

Я связал команду с событием PivotItemLoading. Так или иначе, при первом триггере события нагрузки параметр всегда имеет тип PivotItemEventArgs.

Однако после второй погрузки проходит правильный предмет (SelectedItem)!

Я не знаю точной причины, но хорошо знать, что это работает.

 Смежные вопросы

  • Нет связанных вопросов^_^