예제 #1
0
 private IEnumerable<TreeViewItem> Subitems(string collectionId)
 {
     var v = cass.GetSubItems(collectionId)
         .Where(xe => xe != null) // такой вариант случался из-за ручного убирания записи о фотодокументе
         .OrderBy(xe => xe.Name == ONames.TagCollection ? 0 : 1)
         .Select(xe =>
         {
             string id = xe.Attribute(ONames.rdfabout).Value;
             TVItem tvHeader = new TVItem();
             var xname = xe.Element("name");
             tvHeader.label.Text = xname==null?"noname" : xname.Value;
             XName type = xe.Name;
             tvHeader.icon.Source =
                 type == ONames.TagCollection ? iconClosedFolderSmall :
                 (type == ONames.TagDocument ? iconDocumentSmall :
                 (type == ONames.TagPhotodoc ? iconPhotoSmall :
                 (type == ONames.TagVideo ? iconVideoSmall :
                 (type == ONames.TagAudio ? iconAudioSmall : iconUnknownSmall))));
             TreeViewItem tvi = new TreeViewItem() { Header = tvHeader, Tag = xe };
             foreach(var sc in Subitems(id))
                 tvi.Items.Add(sc);
             return tvi;
         });
     return v;
 }
예제 #2
0
        private void BuildTreeView()
        {
            treeView1.BeginInit();
            treeView1.Items.Clear();
            // Дерево кассеты
            TVItem tv1 = new TVItem {label = {Text = this.cass.Name}, icon = {Source = iconClosedFolderSmall}};
            TreeViewItem cassItem = new TreeViewItem {Header = tv1, IsExpanded = true, Tag = this.cass.GetXItemById(this.cass.CollectionId)};
            foreach(var sc in Subitems(this.cass.CollectionId))
                cassItem.Items.Add(sc);
            // Дерево мусора
            TVItem tv2 = new TVItem {label = {Text = "Мусорная корзина"}, icon = {Source = iconClosedFolderSmall}};
            TreeViewItem waste = new TreeViewItem() { Header = tv2, Tag = this.cass.GetXItemById(this.cass.Wastebasket) };
            foreach(var sc in Subitems(this.cass.Wastebasket))
                waste.Items.Add(sc);

            //// Дерево меню
            //TVItem tv3 = new TVItem(); tv3.label.Text = "Меню";
            //TreeViewItem menuItem = new TreeViewItem() { Header = tv3, IsExpanded = false };
            //foreach (var sc in Subitems("menurootcollection"))
            //    menuItem.Items.Add(sc);

            treeView1.Items.Add(cassItem);
            treeView1.Items.Add(waste);
            //treeView1.Items.Add(menuItem);
            treeView1.EndInit();
        }