wp7中的ListBox对我不起作用

时间:2012-05-03 14:13:11

标签: windows-phone-7 listbox

我正在尝试在wp7中展示一个列表视图,由于某种原因它似乎无法正常工作

我的xaml

            <!--ContentPanel - place additional content here-->
        <StackPanel x:Name="ContentPanel2" Grid.Row="1" Margin="12,0,12,0">
            <ListBox x:Name="list">
                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <StackPanel Margin="5">
                        <Image Source="{Binding ImageUri}" Stretch="None"/>
                        <TextBlock Text="{Binding Text}"/>
                        </StackPanel>
                    </DataTemplate>
                </ListBox.ItemTemplate>
            </ListBox>
        </StackPanel>

    </Grid>

我的c#代码

    public class list
{
    public string title { get; set; }
    public string imageSource { get; set; }
}

        private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
    {
        List<list> dataSources = new List<list>();
        dataSources.Add(new list() { title = "Shacharit", imageSource = "Images/shacharit.png" });
        dataSources.Add(new list() { title = "Mincha", imageSource = "Images/mincha.png" });
        dataSources.Add(new list() { title = "Arvit", imageSource = "Images/arvit.png" });
        dataSources.Add(new list() { title = "Birkat HaMazon", imageSource = "Images/shacharit.png" });
        list.ItemsSource = dataSources;
    }

提前致谢

2 个答案:

答案 0 :(得分:2)

尝试以下操作,更改图像和文本块的绑定以绑定到您目前声明的字符串,您尝试绑定到ImageURI和Text,它们在您的任何代码中都不存在。

           <!--ContentPanel - place additional content here-->
    <StackPanel x:Name="ContentPanel2" Grid.Row="1" Margin="12,0,12,0">
        <ListBox x:Name="list" Da>
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <StackPanel Margin="5">
                    <Image Source="{Binding imageSource }" Stretch="None"/>
                    <TextBlock Text="{Binding title}"/>
                    </StackPanel>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>
    </StackPanel>

</Grid>

答案 1 :(得分:1)

澄清Jon D的回答,你正在你的代码中创建具有“imagePath”和“title”属性的数据对象

new list() { title = "Shacharit", imageSource = "Images/shacharit.png" };

但试图找到名为“ImageUri”和“Text”的属性。

在VS的输出窗口中,您应该会看到这些绑定错误。

以下两行(你在XAML中进行绑定)应该为你解决问题......

<Image Source="{Binding imageSource }" Stretch="None"/>
<TextBlock Text="{Binding title}"/>