MenuItem root = new MenuItem() { Title = baza.PobierzDaneSql("SELECT [level_1] FROM [level1]") };
MenuItem childItem = new MenuItem() { Title = "to nie potrzebne" };
string temp_level2 = "";
string temp_level3 = "";
                    while (dr.Read())
                    {
                       if (((dr["level_2"].ToString() == temp_level2)) || (dr["level_2"].ToString()==null))
                       {
                 
                 
                           temp_level2 = dr["level_2"].ToString();        
                       }else
                       {
                            root.Items.Add(new MenuItem() { Title = dr["level_2"].ToString() });
                           temp_level2 = dr["level_2"].ToString();
                       }

                        if ((dr["level_3"].ToString() == temp_level3))
                        {
                              temp_level3 = dr["level_3"].ToString();
                        }
                        else
                        {
                            childItem.Items.Add(new MenuItem() { Title = dr["level_3"].ToString() });
                            temp_level3 = dr["level_3"].ToString();
                        }
                    }
                    root.Items.Add(childItem);
                    trvMenu.Items.Add(root);

Problem jest taki że tworzę menu i wszystko jest ok do trzeciego poziomu. A minowicie root.Items.Add(childItem)dodaje do węzła root dodaje węzły childItem i węzły podrzędne czyli level_3. Nie potrzebnie dodajwany jest MenuItem childItem = new MenuItem() { Title = "to nie potrzebne" };. Wiem że tu tkwi błąd ale nie wiem jak go ominąć? Skreśłić tego nie mogę z wiadomego powodu.
Pytanie drugie jest takie: węzły trzeciego poziomu dodaje tylko do ostatniego węzła z drugiego. Jeśli bym chciał to rozdzielić na poszczególne węzły z poziomu 2 to muszę nadawać im osobne nazwy?