gpt4 book ai didi

c# - XAML Hub Control Windows 8.1 Universal,InvokeCommandAction 未触发

转载 作者:行者123 更新时间:2023-11-30 17:47:07 24 4
gpt4 key购买 nike

我的主页和 HubSection header 中有一个集线器控件,当我单击按钮时我无法触发该元素,但是当我将 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>

下面是触发事件的代码:

                <DataTemplate>
<StackPanel >
<StackPanel >
<interactivity:Interaction.Behaviors>
<core:EventTriggerBehavior EventName="Tapped">
<core:InvokeCommandAction Command="{Binding ViewMoreCommand}" />
</core:EventTriggerBehavior>
</interactivity:Interaction.Behaviors>
<TextBlock
Text="{Binding
WhatToWatch.Name,
Mode=OneWay}" />
</StackPanel>
<controls:RowGridView
ItemsSource="{Binding
WhatToWatch.Data,
Mode=TwoWay}" />
</StackPanel>
</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>

关于c# - XAML Hub Control Windows 8.1 Universal,InvokeCommandAction 未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25116610/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com