0

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

   <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 个分组(不过我可能需要一个滚动条)。

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

4

1 回答 1

0

我认为您需要使用名为“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/编辑副本”)

于 2013-01-27T04:07:37.903 回答