Windows应用商店应用:网格视图组标题按钮命令未触发?

时间:2013-04-29 14:29:15

标签: windows-8 windows-store-apps winrt-xaml

我有一个网格视图,其中包含以下“组样式标题”模板:

<GroupStyle.HeaderTemplate>
                        <DataTemplate>
                            <Grid Margin="1,0,0,6">
                                <Button
                                    AutomationProperties.Name="Group Title"
                                    Command="{Binding GroupCommand}"
                                    Style="{StaticResource TextPrimaryButtonStyle}"
                                    >
                                    <StackPanel Orientation="Horizontal">
                                        <TextBlock Text="{Binding Key}" Margin="3,-7,10,10" Style="{StaticResource GroupHeaderTextStyle}" />
                                        <TextBlock Text="{StaticResource ChevronGlyph}" FontFamily="Segoe UI Symbol" Margin="0,-7,0,10" Style="{StaticResource GroupHeaderTextStyle}"/>
                                    </StackPanel>
                                </Button>
                            </Grid>
                        </DataTemplate>
                    </GroupStyle.HeaderTemplate>

问题在于,当我单击按钮时,GroupCommand不会执行。

这里有什么问题?

2 个答案:

答案 0 :(得分:2)

你应该这样试试:

private void Button_Tapped_1(object sender, TappedRoutedEventArgs e)
        {
            SampleDataItem item = new SampleDataItem("test", "test!", "subtitle", "", "", "", null);
            SampleDataSource.AddItemToFirstGroup(item);
        }

        private void Button_Tapped_2(object sender, TappedRoutedEventArgs e)
        {
            SampleDataGroup group = new SampleDataGroup("test", "testGroup", "subtitle", "", "");
            group.Items.Add(new SampleDataItem("test", "test!", "subtitle", "", "", "", null));
            SampleDataSource.AddGroup(group);
        }

答案 1 :(得分:2)

我从这里得到了它 WinRT (Win 8) Store App XAML Bindings RelativeSourceMode FindAncestor missing?

我想将我的按钮绑定到我的ViewModel中的ICommand,所以我这样做:

 <GroupStyle.HeaderTemplate>
                            <DataTemplate>
                                <Grid Margin="1,0,0,6">
                                    <Button
                                        AutomationProperties.Name="Group Title"
                                        Command="{Binding ElementName=myParentGridView, Path=DataContext.GroupCommand}"
                                        Style="{StaticResource TextPrimaryButtonStyle}"
                                        >
                                        <StackPanel Orientation="Horizontal">
                                            <TextBlock Text="{Binding Key}" Margin="3,-7,10,10" Style="{StaticResource GroupHeaderTextStyle}" />
                                            <TextBlock Text="{StaticResource ChevronGlyph}" FontFamily="Segoe UI Symbol" Margin="0,-7,0,10" Style="{StaticResource GroupHeaderTextStyle}"/>
                                        </StackPanel>
                                    </Button>
                                </Grid>
                            </DataTemplate>
                        </GroupStyle.HeaderTemplate>