В пользовательском элементе управления у меня есть это:
<ToggleButton x:Name="toggleButton" Style="{StaticResource PaneToggleButton}"
Content="{Binding MyChromaticNotes.Root.Note}">
<Interactivity:Interaction.Behaviors>
<Core:EventTriggerBehavior EventName="Checked">
<Core:InvokeCommandAction
Command="{Binding AddSelectedCommand}" />
</Core:EventTriggerBehavior>
<Core:EventTriggerBehavior EventName="UnChecked">
<Core:InvokeCommandAction
Command="{Binding RemoveSelectedCommand}"/>
</Core:EventTriggerBehavior>
</Interactivity:Interaction.Behaviors>
</ToggleButton>
Эти две команды привязываются к статическим свойствам моей модели представления типа «DelegateCommand», который реализует ICommand. В конструкторе модели представления у меня есть это:
#region Add Selected
AddSelectedCommand = new DelegateCommand(
() => { SelectedTones.Add(MyChromaticNotes.Root.Note); },
() => { return true; }
);
#endregion
#region Remove Selected
RemoveSelectedCommand = new DelegateCommand(
() => { SelectedTones.Remove(MyChromaticNotes.Root.Note); },
() => { return SelectedTones.Contains(MyChromaticNotes.Root.Note); }
);
#endregion
Если я попытаюсь запустить его, я получу «Невозможно добавить экземпляр EventTriggerBehavior в коллекцию типа BehaviorCollection» в окне вывода, но если я удалю второй «EventTriggerBehavior» из XAML и соответствующий RemoveSelectedCommand DelegateCommand из модели представления, он запускается и я могу добавить в SelectedTones (типа ObservableCollection).
Вопрос: Почему второй EventTriggerBehavior не работает, как исправить?