Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# XAML集线器控制Windows 8.1通用,InvokeCommandAction未启动_C#_Xaml_Windows 8.1_Mvvm Light_Win Universal App - Fatal编程技术网

C# XAML集线器控制Windows 8.1通用,InvokeCommandAction未启动

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

我在主页上有一个hub控件,在HubSection标题中,当我单击按钮时,我无法获取要激发的元素,但是当我将XAML移动到DataTemplate中时,如果触发事件,则会触发该事件。你能给我解释一下为什么会这样吗?我是否需要在HubSection.Header中启用一些东西以便事件可以触发

以下是无法触发的代码:

 <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>