This is a migrated thread and some comments may be shown as answers.

Hierarchical Data Binding

1 Answer 112 Views
Treeview
This is a migrated thread and some comments may be shown as answers.
Brian
Top achievements
Rank 1
Brian asked on 12 Feb 2012, 06:05 PM
Hi,
I have a fairly simple object model:

public class Location
{
           public string Name { getset; }

        readonly List<Location> _locations = new List<Location>();
        public List<Location> Locations
        {
            get { return _locations; }
        }
 
        readonly List<Printer> _printers = new List<Printer>();
        public List<Printer> Printers
        {
            get { return _printers; }
        }
}
 
public class Printer
{
        public string Name { get; set; }
        public string Mapping { get; set; }
        public string AdditionalInfo { get; set; }
        public string Guid { get; set; }
}

So a location can have any number of sub-locations,  and each location can have any number of printers.

I'd like to bind this to a RadTreeView, such that the 'Name' property of the location/printer is shown 

e.g
   Location#1
   Location#2
       Location#3
            Location#4
                 Printer#1
                 Printer#2
            Location#5
                 Printer#3

etc.

The object model is loaded from xml at the moment,  a sample of which can be seen here:

<Locations>
  <Location Name="Basingstoke">
    <Location Name="Development Office">
      <Printer Name="HPPSC950" Mapping="\\DEVPRT002\HPPSC950" Guid="064ceeef-7495-4ac2-8ba4-eb5b1c546a1b"/>
      <Printer Name="LaserJet" Mapping="\\DEVPRT002\LaserJet" Guid="65b0c6be-f251-4100-81c9-eb7535df1371"/>
    </Location>
    <Location Name="Accounts Department">
      <Printer Name="Payroll Printer" Mapping="\\ACCPRT005\XPrinter999" Guid="7eea423a-ac97-4245-9c4d-850d559b3ff9"/>
      <Printer Name="XPrint12346576" Mapping="\\ACCPRT005\XPrint12346576" Guid="7a19adf2-654a-4732-8f35-c168bb7f92f9"/>
      <Printer Name="XPrint00650" Mapping="\\ACCPRT005\XPrint00650" Guid="fa4f1367-f18d-4459-82ae-ac78e6d2ba5e"/>
    </Location>
    <Location Name="Sales Office">
      <Printer Name="Colour LaserJet" Mapping="\\SALPRT001\ColLaser" Guid="b1395465-72b7-42d6-ad26-078600a7a8f8"/>
      <Printer Name="HP6732/2344" Mapping="\\SALPRT001\HP6732" Guid="a0b6cd21-42f0-435a-8870-30107472b041"/>
    </Location>
    <Location Name="HR Department">
      <Printer Name="OKI452224/332/2C" Mapping="\\HR001\Oki" Guid="af4da720-6ccf-4f37-8b9e-e996b71d6e3b"/>
    </Location>
  </Location>
  <Location Name="Dagenham"/>
  <Location Name="Glasgow">
    <Location Name="Main Office">
      <Printer Name="MO32423/2" Mapping="\\GLASP001\MO2" Guid="f48b97e9-abea-43cb-887b-c7b3dc164154"/>
      <Printer Name="MO23432/3" Mapping="\\GLASP001\MO3" Guid="a4c50255-39ac-4c86-beb6-abe90096caf2"/>
    </Location>
  </Location>
  <Location Name="London Southbank">
    <Location Name="1st Floor">
      <Printer Name="XPrinter178" Mapping="\\SALPRT001\XPrinter178" AdditionalInfo="This is an A3 Colour Printer, with 2 paper trays" Guid="95829976-6363-4a46-8a8c-0c3655344913"/>
      <Printer Name="XPrinter192" Mapping="\\SALPRT001\XPrinter192" Guid="51c4a69c-5941-401a-b14f-3d215f077642"/>
      <Printer Name="XPrinter193" Mapping="\\SALPRT001\XPrinter193" Guid="0fd5a42c-5c2a-4fd1-8f8a-91ad17e70725"/>
      <Printer Name="XPrinter145" Mapping="\\SALPRT001\XPrinter145" Guid="0da3f62c-929a-4bb8-9a4e-a7c9795360a8"/>
      <Printer Name="XPrinter156" Mapping="\\SALPRT001\XPrinter156" Guid="1271c159-8715-4a6d-afe3-e773cdbae94d"/>
    </Location>
    <Location Name="2nd Floor">
      <Printer Name="XPrinter198" Mapping="\\SALPRT004\XPrinter198" Guid="6364d0a7-d98e-460b-907a-b591b931fc46"/>
    </Location>
    <Location Name="3rd Floor">
      <Printer Name="XPrinter218" Mapping="\\SALPRT003\XPrinter218" Guid="cdc3013b-172b-4ceb-b6bb-f9279963a3e4"/>
      <Printer Name="XPrinter219" Mapping="\\SALPRT003\XPrinter219" Guid="13606f67-3263-41bc-8b1b-d1a99423f5e5"/>
    </Location>
  </Location>
  <Location Name="London Central">
    <Location Name="Accounts">
      <Printer Name="FG23453" Mapping="\\LONACC\FG23453" Guid="b8b299f6-627a-41e7-949f-ce483e760382"/>
      <Printer Name="YM3443533" Mapping="\\LONACC\YM3443533" Guid="0d3de23e-ae86-4cdc-8461-11c01413bea2"/>
    </Location>
    <Location Name="Sales">
      <Printer Name="Colour Laser" Mapping="\\LONACC\XYX13434" Guid="bdd7f360-255c-42d2-ac58-5e92aa364e0a"/>
    </Location>
  </Location>
</Locations>


Can this be done with RadTreeView ???

Thanks.

1 Answer, 1 is accepted

Sort by
0
Julian Benkov
Telerik team
answered on 15 Feb 2012, 05:10 PM
Hi Brian,

The RadTreeView binding functionality does not support this scenario. You can use load-on-demand Nodes loading and Tag property to implement this case. More information about load-on-demand loading you can find in our online documentation.

I hope this information is useful. Let me know if you need further assistance. 

Regards,
Julian Benkov
the Telerik team
Sharpen your .NET Ninja skills! Attend Q1 webinar week and get a chance to win a license! Book your seat now >>
Tags
Treeview
Asked by
Brian
Top achievements
Rank 1
Answers by
Julian Benkov
Telerik team
Share this question
or