【问题标题】:Listbox in other Listbox, Itemsource, BindingListbox in other Listbox, Itemssource, Binding
【发布时间】:2012-04-09 21:54:17
【问题描述】:

我想知道如何刷新我们的 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,但我找不到“asdf”列表框,我无法再次设置它们的数据。

所以两个主要问题是。 1.如果改变了属性,我怎么能触发,而可观察的收集器不起作用。 2. 如何在datatemplate中使用asdf listbox

感谢答案,我很抱歉我的语法错误

【问题讨论】:

  • FacebookFriend 还需要从Notify 继承(在类的每个属性中调用OnPropertyChanged)...这样FacebookFriend 的变化也会在UI 中发生变化
  • 我认为 "asdf" ListBox 的 ItemsSource 应该是

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


【解决方案1】:

您的绑定不起作用,因为您没有使用正确的语法:

   ItemsSource="ComplexNameDays"

应该是

   ItemsSource="{Binding ComplexNameDays}"

第二个绑定也是错误的:

   ItemsSource="ComplexNameDays.FacebookFriends"

【讨论】:

  • +1 您应该使用数据绑定来启用更改通知
猜你喜欢
  • 2010-11-29
  • 2011-07-21
  • 2011-07-13
  • 1970-01-01
  • 1970-01-01
  • 2014-08-16
  • 2014-11-26
  • 2010-11-03
  • 1970-01-01
相关资源
最近更新 更多