I have been asked to update a TreeVeiw in a WPF application that is built on the fly from a class object. As you will see treeveiw is not bound to anything. Below is not my code!!
<TreeView Grid.Row="0" HorizontalAlignment="Stretch" Name="tvLocations" VerticalAlignment="Stretch" SelectedItemChanged="tvLocations_SelectedItemChanged" />
private void BuildTreeVeiw(Location locationList) { this.Title = _selectedLoc.Name + " - Locations"; tvLocations.Items.Clear(); TreeViewItem tvitem; tvitem = new TreeViewItem() { Header = locationList.Name, Uid = locationList.Id.ToString() }; if (locationList.Printers != null) { TreeViewItem tvprnitem = new TreeViewItem() { Header = "Printers" }; tvprnitem.FontWeight = FontWeights.Regular; foreach (Printer sprinters in locationList.Printers) { TreeViewItem psubitem = new TreeViewItem() { Header = sprinters.Name, Uid = sprinters.Id.ToString() }; TreeViewItem psubitem1 = new TreeViewItem() { Header = String.Concat("UNC: ", sprinters.UNC) }; psubitem.Items.Add(psubitem1); tvprnitem.Items.Add(psubitem); } tvitem.Items.Add(tvprnitem); } foreach (Location loc in locationList.Children) { AddChildren(loc, ref tvitem); } tvLocations.Items.Add(tvitem); } private void AddChildren(Location child, ref TreeViewItem tvi) { TreeViewItem tvitem; tvitem = new TreeViewItem() { Header = child.Name, Uid = child.Id.ToString() }; if (child.Name == _currentLocation.Name) { tvitem.FontWeight = FontWeights.Bold; } if (child.Printers != null) { TreeViewItem tvprnitem = new TreeViewItem() { Header = "Printers" }; tvprnitem.FontWeight = FontWeights.Regular; foreach (Printer sprinters in child.Printers) { TreeViewItem psubitem = new TreeViewItem() { Header = sprinters.Name, Uid = sprinters.Id.ToString() }; TreeViewItem psubitem1 = new TreeViewItem() { Header = String.Concat("UNC: ", sprinters.UNC) }; psubitem.Items.Add(psubitem1); tvprnitem.Items.Add(psubitem); } tvitem.Items.Add(tvprnitem); } if (child.Children != null) { foreach (Location loc in child.Children) { AddChildren(loc, ref tvitem); } } tvi.Items.Add(tvitem); } This builds the tree correctly and all I have been asked to do is add an icon to the TreeViewItem. The icon will be a different depending on whether it is a location or a printer within that location.
I cannot see how to add icons to TreeViewItems can anyone point me in the right direction?