在用户控件中我有:
<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类型的集合中”,但是如果我从XAML中移除第二个'EventTriggerBehavior'并从视图中删除相应的RemoveSelectedCommand DelegateCommand model它运行,我可以添加到SelectedTones(ObservableCollection类型)。
问题:为什么第二个EventTriggerBehavior不起作用,如何修复?
答案 0 :(得分:0)
事件名称为 Unchecked
而不是 UnChecked
。
套管很重要。