我有一个MainViewModel和Customers属性(作为ObservableCollection的CustomerViewModel对象的列表)。我想将该列表作为ItemsSource绑定到ListView控件。我的MainViewModel绑定到Window的DataContext属性。我使用ServiceLocator模式来创建MainViewModel实例,该实例将IDataService接口作为构造函数中的参数。我使用接口将数据服务注入到MainViewModel中,并可以为Blend中的设计器创建一些测试数据。在Expression Blend中一切正常,数据显示正确,但是当我运行代码时ItemsSource为null并且没有数据绑定。 DataContext是正确的。当我将DataContext设置为null并且再次将MainViewModel实例ItemsSource自动设置为Customers属性时。为什么在应用程序启动时不会自动绑定到Customers属性?WPF ListView.ItemsSource绑定问题
<Grid x:Name="LayoutRoot" DataContext="{Binding MainViewModel, Source={StaticResource Locator}}">
<ListView Margin="12" x:Name="customerList"
ItemsSource="{Binding Customers}">
...
</ListView>
</Grid>
定位器在创建视图之前创建MainViewModel。但是我发现在创建视图后,我在异步回调上填充Customers属性。所以没有NotifyPropertyChanged事件被激发。非常感谢你! :-) – Azat 2010-09-10 11:42:48