@SZolotov
разрабатываю на Xamarin,WPF,Qt, Asp.net

Почему не работает Core:InvokeCommandAction?

Здравствуйте. Есть такой вот самописный элемент управления:
<controls:ToggleList x:Name="toggleList" Grid.Row="4" x:Uid="PublishersToggleList" Items="{Binding PublishersList}">
                	<Interactivity:Interaction.Behaviors>
                        <Core:EventTriggerBehavior EventName="SelectedItemChanged">
                			<Core:InvokeCommandAction Command="{Binding PublishersChandgedCommand}" 
                                  CommandParameter="{Binding SelectedItem, ElementName=toggleList, Mode=OneWay}"/>
                		</Core:EventTriggerBehavior>
                	</Interactivity:Interaction.Behaviors>
                </controls:ToggleList>

Код привязанной команды:
public RelayCommand<Publisher> PublishersChandgedCommand
        {
            get
            {
                return new RelayCommand<Publisher>((arg) =>
                {
                    if (arg != null)
                    {
                        SelectByPublisher(arg);
                    }
                });
            }


Почему подобный подход не работает для элемента коллекции другого типа? Например, когда я делаю вот так:
<controls:ToggleList x:Name="toggleList" Grid.Row="4" x:Uid="PublishersToggleList" Items="{Binding AutorList}">
              <Interactivity:Interaction.Behaviors>
                     <Core:EventTriggerBehavior EventName="SelectedItemChanged">
              		<Core:InvokeCommandAction Command="{Binding AutorListChandgedCommand}" 
                              CommandParameter="{Binding SelectedItem, ElementName=toggleList, Mode=OneWay}"/>
                     </Core:EventTriggerBehavior>
                </Interactivity:Interaction.Behaviors>
</controls:ToggleList>

Команда привязывается, но при возникновении события SelectedItemChanged, внутри MVVM Light возникает ошибка System.InvalidCastException в методе Execute
  • Вопрос задан
  • 2638 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы