在DataTemplate中绑定Stackpanel

时间:2011-09-12 09:53:48

标签: xml windows-phone-7

我有一个列表框的DataTemplate:

<DataTemplate x:Key="MoviesTemplate">
            <StackPanel Orientation="Horizontal">
                <Image Source="{Binding S_Poster}" Height="73" Width="73" VerticalAlignment="Top" Margin="0,10,8,0"/>
                <StackPanel Orientation="Vertical" Width="200">
                    <TextBlock Text="{Binding Name}" FontSize="20"/>
                    <TextBlock Text="{Binding Type}" FontSize="16"/>
                    <TextBlock Text="{Binding Theaters_S}" FontSize="16"/>
                </StackPanel>
                <StackPanel ItemsSource="To be bound to the custom stack"/>
            </StackPanel>
        </DataTemplate> 

我需要绑定堆栈“StackPanel ItemsSource =”要绑定到自定义堆栈“到我在C#代码中定义的名为”Stack_PIC“的堆栈面板一堆照片,编码如下:

for (int i=0; i < full; i++)
{
   Image star = new Image();
   star.Source = new BitmapImage(new Uri("/Images/Small_F.png", UriKind.Relative));
   d.Rating_PIC.Children.Add(star);
}  

我的目的是将评级明星添加到 ListBoxItems ,那么将此堆栈的内容绑定到以下自定义内容的正确方法是什么?

更新:

我知道stackpanel不能以这种方式绑定,另一种方法是使用一个名为ItemsControl的结构,如Question所示。但是,我不明白那里的完整答案以及如何将它映射到我的案例,所以任何帮助澄清这一点都表示赞赏。

1 个答案:

答案 0 :(得分:0)

您无法在StackPanel上定义ItemsSource。因此,您应该尝试使用ListBox或其他ItemsControl对象来解决您的问题。

这个post可以让你继续前进。

另外,或许可以考虑使用premade starrating control(我认为你试图这样做,对吧?),看看this一个。