这真的很特别。我尝试了一个简单的数据绑定示例程序。我试图将一个集合(IList)绑定到一个列表框。当我更改集合时,仅当我最大化窗口时才更新列表框。这是片段,
<ListBox x:Name="myBirthdaysListBox" ItemsSource="{Binding}">
<ListBox.ItemTemplate>
<DataTemplate>
<UniformGrid>
<Label Content="{Binding Name}"></Label>
<Label Content="{Binding DateOfBirth}"></Label>
</UniformGrid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
public Window1()
{
InitializeComponent();
myCalendar = new List<Calendar>();
myBirthdaysListBox.DataContext = myCalendar;
}
我只是wpf的初学者。请告诉我,如果我在这里做了一些非常错误的事情。
答案 0 :(得分:0)
尝试使用BindingList<Calendar>
而不仅仅是List<Calendar>
,因为绑定列表会在项目添加/删除等时引发事件。
您所看到的是当您调整大小时控件正在重绘,并且它会再次遍历所有数据。
在我的头脑中,我相信您需要在INotifyPropertyChanged
上实施Calendar
,以便在其中的项目发生更改时通知绑定列表