【问题标题】:Accessing group-headings sub elements in data-bound GridView访问数据绑定 GridView 中的组标题子元素
【发布时间】:2012-10-22 07:14:48
【问题描述】:

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

我在组的标题中添加了一个名为 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>

帮助表示赞赏。

【问题讨论】:

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


    【解决方案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 事件,并在事件触发时获取对环(发送方)的引用。

    【讨论】:

      猜你喜欢
      • 2013-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-31
      • 2016-03-12
      • 1970-01-01
      • 2020-09-25
      相关资源
      最近更新 更多