访问数据绑定GridView中的group-headings子元素

时间:2012-11-01 16:33:42

标签: c# xaml windows-8 microsoft-metro windows-runtime

我正在开发一个带有数据绑定gridview xaml控件的windows 8 metro应用程序。

enter image description here

我已将名为progressRingGroup的响铃进度条添加到组的标题中,如下所示。

<ProgressRing x:Name="progressRingGroup" IsActive="True" Visibility="Visible" Width="16" Height="16" Margin="0,-7,0,0"/>

我想以编程方式从我的代码访问ring-progress-bar(所以我可以启动/停止它),但由于我的网格视图是数据绑定,我不知道该怎么做。

我在gridview中有多个组,需要分别访问所有组。

这是我的gridview的groupstyle xaml定义;

<GridView.GroupStyle>
            <GroupStyle>
                <GroupStyle.HeaderTemplate>
                    <DataTemplate>
                        <Grid Margin="1,0,0,6">
                            <Button
                                AutomationProperties.Name="Group Title"
                                Click="Header_Click"
                                Style="{StaticResource TextPrimaryButtonStyle}" >
                                <StackPanel Orientation="Horizontal">
                                    <ProgressRing x:Name="progressRingGroup" IsActive="True" Visibility="Visible" Width="16" Height="16" Margin="0,-7,0,0"/>
                                    <TextBlock Text="{Binding Title}" Margin="6,-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>
                <GroupStyle.Panel>
                    <ItemsPanelTemplate>
                        <VariableSizedWrapGrid ItemWidth="75" ItemHeight="150" Orientation="Vertical" Margin="0,0,80,0" MaximumRowsOrColumns="3"/>
                    </ItemsPanelTemplate>
                </GroupStyle.Panel>
            </GroupStyle>
        </GridView.GroupStyle>

帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

如果您希望能够控制每个进度环的IsActive属性,请将bool属性添加到组数据模型,并将IsActive绑定到该属性。这样您就可以控制每个ProgressRing,而无需以编程方式访问所有这些。

例如:

<ProgressRing x:Name="progressRingGroup" IsActive="{Binding GroupLoading}" Visibility="Visible" Width="16" Height="16" Margin="0,-7,0,0"/>

如果您仍想以编程方式访问每个,可以在DataTemplate中为ProgressRing分配Loaded事件,当事件触发时,获取对环(发件人)的引用。