我在将我的收藏绑定到我的列表视图时遇到了一些麻烦。我在这里尝试了很多与其他人不同的方法进行绑定,并且最初也遵循了本教程。我让它工作,但这不是我想要的方式。
无论如何,这里是 XML:
    <ListView Grid.Row="0" ItemsSource="{Binding SongList}"  SelectionMode="Extended" x:Name="ListViewMain" VerticalAlignment="Top"  ScrollViewer.VerticalScrollBarVisibility="Visible" Margin="0,1,0,0" Height="264" >
        <ListView.View>
            <GridView>
                <GridViewColumn Header="Title" DisplayMemberBinding="{Binding Title}" Width="500"/>
                <GridViewColumn Header="Artist" DisplayMemberBinding="{Binding Artist}" Width="100"/>
                <GridViewColumn Header="Album" DisplayMemberBinding="{Binding Album}" Width="100"/>
                <GridViewColumn Header="Length" DisplayMemberBinding="{Binding Length}" Width="100"/>
                <GridViewColumn Header="Location" DisplayMemberBinding="{Binding Songfile}" Width="100"/>
            </GridView>
        </ListView.View>
    </ListView>
在我的代码中,要将项目添加到我的收藏中,我会:
public MainWindow()
{
     InitializeComponent();
         ...
     PlayListItem addsong = new PlayListItem(title, artist, album, length, filename);
}
带有 ObservableCollection 的 PlayListItem 类:
public class PlayListItem
{
 public ObservableCollection<Song> _SongList = new ObservableCollection<Song>();
 public ObservableCollection<Song> SongList { get { return _SongList; } }       
 public PlayListItem(string _Title, string _Artist, string _Album, string _Length, string _Filename)
{
     _SongList.Add(new Song
    {
     Title = _Title,
     Artist = _Artist,
     Album = _Album,
     Length = _Length,
     SongFile = _Filename,
    });
}
 public class Song
  {
    public string Artist { get; set; }
    public string Album { get; set; }
        public String Title { get; set; }
        public string Length { get; set; }
        public String SongFile { get; set; }
  }
}
我认为每次调用构造函数时都会正确添加我的项目,但它不会在 ListView 上得到更新。我也没有关于输出窗口中的绑定的一些错误。
任何想法和帮助将不胜感激。
编辑 :
通过添加 :
ListViewMain.ItemsSource = addsong.SongList;
在创建一个新的 PlayListItem 之后似乎解决了这个问题,因为 ListView 现在正在打印该项目。