如何动态地将我的Usercontrols添加到C#中的Pivot项?

时间:2013-11-13 13:35:21

标签: c# windows-phone-7

我正在开发一个Windows Phone 7应用程序,我是新手。现在我陷入了困境。我有一个Pivot控件列出了我的所有组。在每个组(Pivot项目)中,我想显示每个组中的人数。为了显示人员列表,我创建了一个带有某种样式的用户控件。如何使用C#将带有加载数据(例如image,name,mobilenumber等)的usercontrol动态添加到pivot项中。

   <controls:Pivot x:Name="pvGroupList" ItemsSource="{Binding listFriends}" Height="640" Margin="8,126,0,0" Title="Groups" VerticalAlignment="Top" d:LayoutOverrides="Height" FontFamily="/AutoEGreetings;component/Fonts/mrsmonsteracad.ttf#Mrs. Monster Academy" FontSize="29.333">
        <controls:Pivot.Foreground>
            <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                <GradientStop Color="#FF80FD75" Offset="0"/>
                <GradientStop Color="#FF80FD75" Offset="1"/>
                <GradientStop Color="White" Offset="0.522"/>
            </LinearGradientBrush>
        </controls:Pivot.Foreground>
        <controls:Pivot.HeaderTemplate>
            <DataTemplate>
                <TextBlock Text="{Binding GroupName}" FontSize="50" />
            </DataTemplate>
        </controls:Pivot.HeaderTemplate>
        <controls:Pivot.ItemTemplate>
            <DataTemplate>
                <ScrollViewer Height="540">
                    <StackPanel>
                        // Here i need to add my list of usercontrol                  
                    </StackPanel>
                </ScrollViewer>
            </DataTemplate>
        </controls:Pivot.ItemTemplate>          
    </controls:Pivot>

我的代码后面有一个类列表。

List<FriendsListDto> listFriends = e.Result;
pvGroupList.ItemsSource = listFriends;

小组标题按预期具有约束力。但是如何绑定usercontrol?

1 个答案:

答案 0 :(得分:0)

而不是这段代码:

<controls:Pivot.ItemTemplate>
    <DataTemplate>
        <ScrollViewer Height="540">
            <StackPanel>
                // Here i need to add my list of usercontrol
            </StackPanel>
        </ScrollViewer>
    </DataTemplate>
</controls:Pivot.ItemTemplate> 

你可以使用类似的东西:

<controls:Pivot.ItemTemplate>
    <DataTemplate>
        <ListBox ItemsSource={Binding YourControlsCollection}/>
    </DataTemplate>
</controls:Pivot.ItemTemplate>

或者你可以使用ItemsControl(而不是ListBox)和ScrollViewer。

而不是List,最好使用ObservableCollection(但如果绑定正常,则没有必要)。对于YourControlsCollection,最好在FriendsListDto类中使用ObservableCollection。

然后只需在您的控件集合中添加一些元素,并在listFriends中添加新元素。