Связать treeview


  • Пару дней назад начал писать своё первое приложение WPF, пока ещё не совсем разобрался как работает привязка данных. Помогите разобраться на примере файловой системы. Набор данных следующий:

    Тут по идее должен был вывести список дисков, но получается абсолютно пустое дерево. Помогите разметку сделать под заданный набор данных. В идеале, каждый тип ещё и соответствующей иконкой выделить.

    + VB.NET DataSet Dim dtHDD As New DataTable("Disks") dtHDD.Columns.Add("ID") dtHDD.Columns.Add("DiskName") dtHDD.Rows.Add(1, "Диск 1") dtHDD.Rows.Add(2, "Диск 2") Dim dtFolders As New DataTable("Folders") dtFolders.Columns.Add("ID") dtFolders.Columns.Add("DiskID") dtFolders.Columns.Add("FolderID") dtFolders.Columns.Add("FolderName") dtFolders.Rows.Add(1, 2, DBNull.Value, "Музыка") dtFolders.Rows.Add(2, 1, DBNull.Value, "Документы") dtFolders.Rows.Add(3, 1, 2, "Проекты") dtFolders.Rows.Add(4, 1, 3, "Чертежи") dtFolders.Rows.Add(5, связать treeview 1, 3, "Наброски") dtFolders.Rows.Add(6, 1, 2, "Корзина") dtFolders.Rows.Add(7, 2, DBNull.Value, "Фильмы") dtFolders.Rows.Add(8, 1, 5, "Ещё одна папка") Dim dtFiles As New DataTable("Files") dtFiles.Columns.Add("ID") dtFiles.Columns.Add("FolderID") dtFiles.Columns.Add("FileName") dtFiles.Rows.Add(1, 8, "файл1") dtFiles.Rows.Add(2, 2, "файл2") dtFiles.Rows.Add(3, 3, "файл3") dtFiles.Rows.Add(4, 2, "файл4") dtFiles.Rows.Add(5, 5, "файл5") dtFiles.Rows.Add(6, 5, "файл6") dtFiles.Rows.Add(7, 8, "файл7") dtFiles.Rows.Add(8, 8, "файл8") dtFiles.Rows.Add(9, 1, "файл9") Dim ds As New DataSet ds.Tables.Add(dtHDD) ds.Tables.Add(dtFolders) ds.Tables.Add(dtFiles) ds.Relations.Add("DiskFolder", ds.Tables("Disks").Columns("ID"), ds.Tables("Folders").Columns("DiskID")) ds.Relations.Add("FolderFolder", ds.Tables("Folders").Columns("ID"), ds.Tables("Folders").Columns("FolderID")) ds.Relations.Add("FolderFile", ds.Tables("Folders").Columns("ID"), ds.Tables("Files").Columns("FolderID")) treeTest.ItemsSource = ds.Tables("Disks").DefaultView + C# DataSet DataTable dtHDD = new DataTable("Disks"); dtHDD.Columns.Add("ID"); dtHDD.Columns.Add("DiskName"); dtHDD.Rows.Add(1, "Диск 1"); dtHDD.Rows.Add(2, "Диск 2"); DataTable dtFolders = new DataTable("Folders"); dtFolders.Columns.Add("ID"); dtFolders.Columns.Add("DiskID"); dtFolders.Columns.Add("FolderID"); dtFolders.Columns.Add("FolderName"); dtFolders.Rows.Add(1, 2, DBNull.Value, "Музыка"); dtFolders.Rows.Add(2, 1, DBNull.Value, "Документы"); dtFolders.Rows.Add(3, 1, 2, "Проекты"); dtFolders.Rows.Add(4, 1, 3, "Чертежи"); dtFolders.Rows.Add(5, 1, 3, "Наброски"); dtFolders.Rows.Add(6, 1, 2, "Корзина"); dtFolders.Rows.Add(7, 2, DBNull.Value, "Фильмы"); dtFolders.Rows.Add(8, 1, 5, "Ещё одна папка"); DataTable dtFiles = new DataTable("Files"); dtFiles.Columns.Add("ID"); dtFiles.Columns.Add("FolderID"); dtFiles.Columns.Add("FileName"); dtFiles.Rows.Add(1, 8, "файл1"); dtFiles.Rows.Add(2, 2, "файл2"); dtFiles.Rows.Add(3, 3, "файл3"); dtFiles.Rows.Add(4, 2, "файл4"); dtFiles.Rows.Add(5, 5, "файл5"); dtFiles.Rows.Add(6, 5, "файл6"); dtFiles.Rows.Add(7, 8, "файл7"); dtFiles.Rows.Add(8, 8, "файл8"); dtFiles.Rows.Add(9, 1, "файл9"); DataSet ds = new DataSet(); ds.Tables.Add(dtHDD); ds.Tables.Add(dtFolders); ds.Tables.Add(dtFiles); ds.Relations.Add("DiskFolder", ds.Tables("Disks").Columns("ID"), ds.Tables("Folders").Columns("DiskID")); ds.Relations.Add("FolderFolder", ds.Tables("Folders").Columns("ID"), ds.Tables("Folders").Columns("FolderID")); ds.Relations.Add("FolderFile", ds.Tables("Folders").Columns("ID"), ds.Tables("Files").Columns("FolderID")); treeTest.ItemsSource = ds.Tables("Disks").DefaultView;
    Источник: http://forundex.ru/yap/Kak-svyazatj-TreeView-s-TextBox-na-MVVM-26506



    Рекомендуем посмотреть ещё:


    Закрыть ... [X]

    Как связать ветвь в TreeView с записью в БД - Delphi и базы данных Лаки для поделок из дерева

    Связать treeview Связать treeview Связать treeview Связать treeview Связать treeview Связать treeview