Listbox在另一个Listbox,Itemssource,Binding中

时间:2012-04-09 21:54:18

标签: c# wpf silverlight windows-phone-7

我想知道如何刷新ListBox项。 我尝试了OnPropertyChanged方法,ObservableCollection,但它没有工作。我尝试再次设置itemsource属性,这样就可以了,但是现在我有2个ListBox,现在它很复杂。它是一个wp7项目,有主界面。你可以看到我有2个列表框

 <ListBox Name="lsbNameDays" ItemsSource="ComplexNameDays">
                        <ListBox.ItemTemplate>
                            <DataTemplate>
                                <StackPanel>
                                <TextBlock Text="{Binding NameDay.Name}" FontSize="50"/>
                                <ListBox ItemsSource="ComplexNameDays.FacebookFriends" x:Name="asdf">
                                        <ListBox.ItemTemplate>
                                            <DataTemplate>
                                                <StackPanel>
                                                    <TextBlock Text="{Binding Lastname}"/>
                                                </StackPanel>
                                            </DataTemplate>
                                        </ListBox.ItemTemplate>
                                    </ListBox>
                                </StackPanel>
                            </DataTemplate>
                        </ListBox.ItemTemplate>
                    </ListBox>

有属性:

 List<SelectedNameDays> complexNameDays;

      public List<SelectedNameDays> ComplexNameDays
            {
                get { return complexNameDays; }
                set 
                { 
                    complexNameDays = value;
                    OnPropertyChanged("ComplexNameDays");
                }


               }

     public class SelectedNameDays : Notifier
        {
            NameDay _nameday;

            public NameDay NameDay
            {
                get { return _nameday; }
                set { _nameday = value; OnPropertyChanged("NameDay"); }
            }


            public List<FacebookFriend> FacebookFriends { get; set; }

            public SelectedNameDays()
            {
                _nameday = new NameDay();
            }
        }

    public class FacebookFriend
        {
            public long Id { get; set; }
            public string Name { get; set; }
            public string Firstname { get; set; }
            public string Lastname { get; set; }
            public string Birthday { get; set; }
            public string Gender { get; set; }
            public Uri Picture { get; set; }
        }

代码的开头是正确的,这是有效的,因为当构造函数设置数据时,我设置重试lbsNameDays的itemsource,但是我找不到&#34; asdf&#34;列表框,我无法再次设置数据。

所以2个主要问题是。  1.如果那样,我如何解雇财产,并且可观察的收集者不起作用。  2.如何在datatemplate

中使用asdf列表框

感谢答案,对不起我的语法错误

1 个答案:

答案 0 :(得分:1)

你的Bindings不起作用,因为你没有使用正确的语法:

   ItemsSource="ComplexNameDays"

应该是

   ItemsSource="{Binding ComplexNameDays}"

第二个绑定也是错误的:

   ItemsSource="ComplexNameDays.FacebookFriends"