在wpf中最大化窗口后反映DataSource

时间:2009-08-14 11:34:43

标签: c# wpf data-binding

这真的很特别。我尝试了一个简单的数据绑定示例程序。我试图将一个集合(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的初学者。请告诉我,如果我在这里做了一些非常错误的事情。

1 个答案:

答案 0 :(得分:0)

尝试使用BindingList<Calendar>而不仅仅是List<Calendar>,因为绑定列表会在项目添加/删除等时引发事件。

您所看到的是当您调整大小时控件正在重绘,并且它会再次遍历所有数据。

在我的头脑中,我相信您需要在INotifyPropertyChanged上实施Calendar,以便在其中的项目发生更改时通知绑定列表