我的应用程序有一系列按键硬编码为导航菜单,但我想将其升级为更多数据驱动的内容。
<Button Content="MyPage">
<i:Interaction.Behaviors>
<core:EventTriggerBehavior EventName="Click">
<core:NavigateToPageAction TargetPage="Namespace.MyPage"/>
</core:EventTriggerBehavior>
</i:Interaction.Behaviors>
</Button>
但是当我尝试将此行为放在不同的XAML元素上(特别是作为数据模板的一部分的TextBlock)时,我收到以下错误。
“Windows.UI.Xaml.Markup.XamlParseException”类型的异常 发生在NavMockUp.Windows.exe中但未在用户代码中处理
WinRT信息:无法添加类型实例 'Microsoft.Xaml.Interactions.Core.EventTriggerBehavior'到 “Microsoft.Xaml.Interactivity.BehaviorCollection”类型的集合
<TextBlock Text="Click for Page">
<i:Interaction.Behaviors>
<core:EventTriggerBehavior EventName="Click">
<core:NavigateToPageAction TargetPage="Namespace.MyPage"/>
</core:EventTriggerBehavior>
</i:Interaction.Behaviors>
</TextBlock>
答案 0 :(得分:7)
确保您了解EventTriggerBehaviors的工作方式
错误可能有点无用,但这是因为TextBlock元素没有一个名为“Click”的事件要附加到。杰里尼克松有一个good article on behaviors
要解决此问题,只需将Click事件替换为Tapped事件,因为TextBlock 具有其中之一。
<TextBlock Text="Click for Page">
<i:Interaction.Behaviors>
<core:EventTriggerBehavior EventName="Tapped">
<core:NavigateToPageAction TargetPage="Namespace.MyPage"/>
</core:EventTriggerBehavior>
</i:Interaction.Behaviors>
</TextBlock>