无法为ListBox ItemsSource设置属性

时间:2011-11-10 21:09:48

标签: wpf silverlight windows-phone-7

List<Post>[] Postok;

public List<Post>[] MyProperty
{
    get { return Postok; } 
    set { Postok = value; } 
}

[DataContract]
public class Post
{
    [DataMember]
    public string _imageSourc { get; set; }
    [DataMember]
    public string _author { get; set; }
    [DataMember]
    public string _maintext { get; set; }
    [DataMember]
    public string _altext { get; set; }
    [DataMember]
    public string _href { get; set; }
}

<ListBox x:Name="sdemotivalo" ItemsSource="{Binding MyProperty[0]}">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding Path=_imageSourc}" />
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

我想为ListBox设置MyProperty [0]。但它没有显示任何东西。我已经搜索了这个问题的答案,但我没找到它。如果你知道请帮助我。

2 个答案:

答案 0 :(得分:1)

您需要为控件或表单设置DataContext。您可能会像这样在根上执行此操作:

<Grid x:Name="LayoutRoot" DataContext="{Binding MyClass}">

这假设MyProperty属于名为MyClass的类的实例。然后,您可以访问MyClass的成员,包括MyProperty。然后,您可以为ItemsSource设置ListBox,如下所示:

<ListBox x:Name="sdemotivalo" ItemsSource="{Binding MyProperty[0]}" >

上面第一行告诉您的表单查看MyClass以获取其数据。因此,当您说ItemsSource="{Binding MyProperty[0]}"时,您会说,&#34;查看您绑定的类实例(MyClass)并找到名为MyProperty的属性&#34;,从那时你可以索引到MyProperty并得到你想要的东西。

我很好奇,为什么你要使用List<T>数组 - 我不确定我是否见过它。

答案 1 :(得分:0)

Public属性的名称是MyProperty,您绑定到ListProp。发布初始化Postok的代码并分配值。