【发布时间】: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