【问题标题】:How to make repeating textblocks in Windows Phone 7?如何在 Windows Phone 7 中制作重复的文本块?
【发布时间】:2013-01-27 01:03:50
【问题描述】:

数据绑定仍然让我感到困惑,我不确定如何让这些控件对我拥有的每条绑定数据重复。

   <Grid>
                <TextBlock FontSize="25" Text="this is a header"></TextBlock>
                <TextBlock Height="30" HorizontalAlignment="Left" Margin="19,36,0,0" Name="txt" Text="line under the header" VerticalAlignment="Top" />
                <TextBlock Height="30" FontSize="25" HorizontalAlignment="Left" Margin="306,9,0,0" Name="textBlock2" Text="530" VerticalAlignment="Top" Width="91" />
                <TextBlock Height="30" HorizontalAlignment="Left" Margin="305,42,0,0" Name="textBlock3" Text="30" VerticalAlignment="Top" Width="91" />
            </Grid>

如果我的数据源的计数为 50。我希望看到其中的 50 个分组(不过我可能需要一个滚动条)。

不知道如何做到这一点。我猜我需要某种数据模板? “标题下的行”也应该是可点击并突出显示的。

【问题讨论】:

    标签: windows-phone-7 xaml data-binding


    【解决方案1】:

    我认为您需要使用名为“ItemsControl”的控件。不是派生类,不是 ListBox,只是简单的ItemsControl

    无论是在代码中还是在 XAML 中,您都可以将 ItemsControl 的 ItemsSource 属性设置为包含您的项目的任何集合。

    在 XAML 中(在 VS 或 Blend 中,要在 Blend 中做到所见即所得,您必须以某种方式提供设计数据)您将 ItemsControl 的 ItemTemplate 设置为 DataTemplate,其中包含您要为其中的每个项目重复的 XAML 子树你的收藏。

    DataTemplate 中,将“标题下的行”替换为Button 控件,使用Content="line under the header",并根据需要设置样式。然后,将CallMethodAction 添加到您的按钮。在 Blend 中只需点击 2 次,第一次在“资产”窗口中。指定TargetObject="{Binding}" MethodName="actSubtitleClicked"。这样,框架将调用用户单击“标题下的行”的项目的void actSubtitleClicked()方法。

    为了获得最佳性能,您还应该修改 ItemsControl 的 ItemsPanel 模板,将 StackPanel 替换为 VirtualizingStackPanel(再次在 Blend 中单击几下,第一个是右键单击,然后是“编辑附加模板/ItemsPanel/编辑副本”)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多