Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将可观察集合绑定到treeview不起作用_C#_Xaml_Binding_Treeview_Observablecollection - Fatal编程技术网

C# 将可观察集合绑定到treeview不起作用

C# 将可观察集合绑定到treeview不起作用,c#,xaml,binding,treeview,observablecollection,C#,Xaml,Binding,Treeview,Observablecollection,我在将一个可观察的集合绑定到树视图时遇到了问题。这是我的代码,似乎100%准确,但不起作用。其目的是能够单击唱片集或歌曲,然后在相应的songinfo/唱片集信息选项卡中显示信息 目前,我甚至无法将专辑名绑定到树视图。。如果唱片集包含任何唱片集,更不用说包含歌曲的子组了 <Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presen

我在将一个可观察的集合绑定到树视图时遇到了问题。这是我的代码,似乎100%准确,但不起作用。其目的是能够单击唱片集或歌曲,然后在相应的songinfo/唱片集信息选项卡中显示信息

目前,我甚至无法将专辑名绑定到树视图。。如果唱片集包含任何唱片集,更不用说包含歌曲的子组了

<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="203" Width="524.579">
    <Grid Margin="0,0,0,12">

        <TreeView x:Name="AlbumListTree"
        HorizontalAlignment="Left"
        ItemsSource="{Binding abumList}" >
            <TreeView.ItemTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding AlbumName}" />
                </DataTemplate>
            </TreeView.ItemTemplate>
        </TreeView>

        <TabControl HorizontalAlignment="Left" Height="141" Margin="191,10,0,0" VerticalAlignment="Top" Width="186">
            <TabItem Header="Album Info">
                <Grid Background="#FFE5E5E5">
                    <Label x:Name="AlbumName" HorizontalAlignment="Left" Height="33" Margin="10,10,0,0" VerticalAlignment="Top" Width="130"/>
                    <Label x:Name="AlbumRelease" HorizontalAlignment="Left" Height="32" Margin="10,48,0,0" VerticalAlignment="Top" Width="130"/>
                </Grid>
            </TabItem>
            <TabItem Header="Song Info">
                 <Grid Background="#FFE5E5E5">
                    <Label x:Name="name" HorizontalAlignment="Left" Height="33" Margin="10,10,0,0" VerticalAlignment="Top" Width="130"/>
                    <Label x:Name="artist" HorizontalAlignment="Left" Height="32" Margin="10,48,0,0" VerticalAlignment="Top" Width="130"/>
                    <Label x:Name="lenghtinSec" HorizontalAlignment="Left" Height="32" Margin="10,68,0,0" VerticalAlignment="Top" Width="130"/>
                </Grid>
            </TabItem>
        </TabControl>
    </Grid>
</Window>
这是我的专辑课

namespace WpfApplication1
{
    public class Album 
    {
        public string AlbumName;
        public string AlbumRelease;
        ObservableCollection<Song> songsAlbum;

        public override string ToString()
        {

            return AlbumName;
        }

        public Album(String a, String b, ObservableCollection<Song> c)
        {
            AlbumName = a;
            AlbumRelease = b;
            songsAlbum = c;
        }


        public static ObservableCollection<Album> GetAlbumList()
        {
            return new ObservableCollection<Album>()
            {
                new Album("Get Rich ","Sept 4", new ObservableCollection<Song>{new Song("50 Cent ","In Da Club",155),
                                                                                new Song("Eminem","Without Me",332),
                                                                                new Song("Meek Mill","Dreams & Nightmares",213)}),
                new Album("Shady Records","Sept 14",new ObservableCollection<Song>{})

            };
        }

    }
}
最后是我的C

namespace WpfApplication1
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            this.Loaded += MainWindow_Loaded;
        }

        public ObservableCollection<Album> albumList { get; set; }



        private void MainWindow_Loaded(object sender, RoutedEventArgs e)
        {

            albumList = Album.GetAlbumList();
            AlbumListTree.DataContext = albumList;

        }

        private void AlbumListTree_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
        {
            Album selectedAlbum = (Album)AlbumList.SelectedItem;
            AlbumName.Content = selectedAlbum.AlbumName;
            AlbumRelease.Content = selectedAlbum.AlbumRelease;
        }

    }



}

“Binding abumList”的可能副本缺少一个“l”。如果进入调试模式,您将在输出窗格中看到此类错误。
namespace WpfApplication1
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            this.Loaded += MainWindow_Loaded;
        }

        public ObservableCollection<Album> albumList { get; set; }



        private void MainWindow_Loaded(object sender, RoutedEventArgs e)
        {

            albumList = Album.GetAlbumList();
            AlbumListTree.DataContext = albumList;

        }

        private void AlbumListTree_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
        {
            Album selectedAlbum = (Album)AlbumList.SelectedItem;
            AlbumName.Content = selectedAlbum.AlbumName;
            AlbumRelease.Content = selectedAlbum.AlbumRelease;
        }

    }



}