C# XAML集线器控制Windows 8.1通用,InvokeCommandAction未启动
我在主页上有一个hub控件,在HubSection标题中,当我单击按钮时,我无法获取要激发的元素,但是当我将XAML移动到DataTemplate中时,如果触发事件,则会触发该事件。你能给我解释一下为什么会这样吗?我是否需要在HubSection.Header中启用一些东西以便事件可以触发 以下是无法触发的代码:C# XAML集线器控制Windows 8.1通用,InvokeCommandAction未启动,c#,xaml,windows-8.1,mvvm-light,win-universal-app,C#,Xaml,Windows 8.1,Mvvm Light,Win Universal App,我在主页上有一个hub控件,在HubSection标题中,当我单击按钮时,我无法获取要激发的元素,但是当我将XAML移动到DataTemplate中时,如果触发事件,则会触发该事件。你能给我解释一下为什么会这样吗?我是否需要在HubSection.Header中启用一些东西以便事件可以触发 以下是无法触发的代码: <HubSection > <HubSection.Header> <Stack
<HubSection >
<HubSection.Header>
<StackPanel >
<TextBlock
Text="{Binding
WhatToWatch.Name,
Mode=OneWay}" />
<interactivity:Interaction.Behaviors>
<core:EventTriggerBehavior EventName="Tapped">
<core:InvokeCommandAction
Command="{Binding ViewMoreCommand}"
CommandParameter="{Binding WhatToWatch.Name}" />
</core:EventTriggerBehavior>
</interactivity:Interaction.Behaviors>
</StackPanel>
</HubSection.Header>
<DataTemplate>
<controls:RowGridView
ItemsSource="{Binding
WhatToWatch.Data,
Mode=TwoWay}" />
</DataTemplate>
</HubSection>
下面是触发事件的代码:
这是相同的代码,但在第二个代码中,核心:InvokeCommandAction操作在DataTemplate中,这是允许XAML调用事件的代码吗?为什么会这样 您必须将引用放在拥有ViewModel的页面上 为页面设置名称,例如:“pageRoot” 然后把你的行为改变为
<interactivity:Interaction.Behaviors>
<core:EventTriggerBehavior EventName="Tapped">
<core:InvokeCommandAction Command="{Binding DataContext.ViewMoreCommand, ElementName=pageRoot}" />
</core:EventTriggerBehavior>
</interactivity:Interaction.Behaviors>
您确定不是stackpanel响应datatemplate吗?
<interactivity:Interaction.Behaviors>
<core:EventTriggerBehavior EventName="Tapped">
<core:InvokeCommandAction Command="{Binding DataContext.ViewMoreCommand, ElementName=pageRoot}" />
</core:EventTriggerBehavior>
</interactivity:Interaction.Behaviors>