【发布时间】:2016-08-11 22:11:58
【问题描述】:
我有一个绑定到 ObservableCollection 的 ListView。我面临的问题是视图没有更新,当我分配一个新集合时,即使我正在调用RaisePropertyChanged。
//TrackIO.GetTracks()
public static ObservableCollection<Track> GetTracks()
{
return tracks;
}
<ListView x:Name="TrackListView"
SelectionMode="Single"
ItemsSource="{Binding Path=ObservableTracks}"
SelectedIndex="{Binding SelectedTrackIndex, Mode=TwoWay}"
>
<!-- Column Binding matches track object properties -->
<ListView.View>
<GridView>
<GridViewColumn Header="Title" Width="600" DisplayMemberBinding="{Binding Title}" />
<GridViewColumn Header="Album" Width="350" DisplayMemberBinding="{Binding Album}" />
<GridViewColumn Header="Artist" Width="250" DisplayMemberBinding="{Binding Artist}" />
<GridViewColumn Header="Duration" Width="200" DisplayMemberBinding="{Binding FormattedDuration}" />
</GridView>
</ListView.View>
</ListView>
private ObservableCollection<Track> _observableTracks;
public ObservableCollection<Track> ObservableTracks
{
get { return _observableTracks; }
private set
{
_observableTracks = value;
RaisePropertyChanged();
}
}
我正在使用 MVVM 灯来通知视图模型,将属性设置为不同的集合。
如您所见,我在集合中有项目,因此当我将新集合分配给 ObservableTracks 属性时。 RaisePropertyChanged() 应该被调用,但是视图是空的/什么都不显示。
非常感谢任何帮助。谢谢。
【问题讨论】:
标签: c# wpf mvvm mvvm-light observablecollection