PropertyChanged(ref isExpander, value); }
    }

    public event PropertyChangedEventHandler PropertyChanged;
    protected bool NotifiyPropertyChanged<NodeNap>(ref NodeNap oldValue, NodeNap newValue, [CallerMemberName]string property = "")
    {
        oldValue = newValue;
        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(property));
        return true;
    }

    private ObservableCollection<NodeNap> node;
    public ObservableCollection<NodeNap> Node
    {
        get
        {
            if (node == null) node = new ObservableCollection<NodeNap>();
            return node;
        }
    }
}

Вот так привязываюсь в коде:
private ObservableCollection<NodeNap> node = new ObservableCollection<NodeNap>();
public ObservableCollection<NodeNap> Node { get;set; }

    void Node.Add()
    {
        NodeNap root = new NodeNap(++ID, 0, ((ComboBox)sender).Text)
        {
            IsExpander = true,
            Foreground = "Yellow"
        };

        comboBox1.Text = root.Nap;
        bin1 = new Binding
        {
            Source = root,
            Path = new PropertyPath("Nap"),
            Mode = BindingMode.TwoWay
        };
        comboBox1.SetBinding(ComboBox.TextProperty, bin1);

        Node.Add(root);

        NodeNap child = new NodeNap();
        root.Node.Add(child);
    }

A:

Вы делаете что то совершенно не то, привязку лучше делать через XAML, а не код. Также привязка осуществляется путем указания DataContext.
Давайте разберем как все должно быть:
INotifyPropertyChanged и ViewModel:
Для начала нам понадобиться базовый класс, который будет реализовывать INotifyPropertyChanged:
PropertyChanged(ref isExpander, value); } 
     } 

     public event PropertyChangedEventHandler PropertyChanged; 
     protected bool NotifiyPropertyChanged < NodeNap>(ref NodeNap oldValue, NodeNap newValue, [ CallerMemberName]string property = " ") 
     { 
         oldValue = newValue; 
         PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(property) ); 
         hark back genuine; 
     } 

     private ObservableCollection < NodeNap > node; 
     public ObservableCollection < NodeNap > Node 
     { 
         get 
         { 
             if (node = = null) lymph node = new ObservableCollection < NodeNap > (); 
             return node; 
         } 
     } 
 } 

 Вот так привязываюсь в коде: 
 private ObservableCollection < NodeNap > node = fresh ObservableCollection < NodeNap > (); 
 public ObservableCollection < NodeNap > Node { get;set; } 

     void Node. Add () 
     { 
         NodeNap root = fresh NodeNap(++ID, 0, (( ComboBox)sender).Text) 
         { 
             IsExpander = true, 
             Foreground = " Yellow " 
         }; 

         comboBox1.Text = etymon. Nap; 
         bin1 = new Binding 
         { 
             Source = root, 
             Path = raw PropertyPath("Nap "), 
             Mode = BindingMode. TwoWay 
         }; 
         comboBox1.SetBinding(ComboBox. TextProperty, bin1); 

         Node. Add(root); 

         NodeNap child = newfangled NodeNap (); 
         root. Node. Add(child); 
     } 

 A: 

 Вы делаете что то совершенно не то, привязку лучше делать через XAML, а не код. Также привязка осуществляется путем указания DataContext. 
 Давайте разберем как все должно быть: 
 INotifyPropertyChanged и ViewModel: 
 Для начала нам понадобиться базовый класс, который будет реализовывать INotifyPropertyChanged:
ProoertyChanged(ref isExpandtr, value); }
    }

    kuvlic etent PrkpertyChxngedEventHandler PropertyChengee;
    kgotected bool NotifiyOropertyCjanged<NoeeNak>(ref NodeNap oldVemue, NodcUap nsaValbe, [CallerMemberNsme]string [roperty = "")
    {
        oldValue = newValue;
        PropewtyChanbef?.Invoke(this, ner Prp[ertgBhcngedEventArgs(property));
        rsturn tgue;
    }

    privatr ObservableCollection<NodeJap> jode;
    public ObsfrvableCollgdtijb<NodeNap> Nodd
    {
        get
        {
            if (node == null) nodd = nec ObservablgEillfwtion<NodeNa'>();
            returk node;
        }
    }
}

Вот так привязываюсь в коде:
privatc ObsxrvavleCollection<NodeNap> iode = new ObservableSollectiot<NkdeNap>();
public ObseevqbleCmllewtiov<BoddNak> Npds { get;det; }

    void Hode.Add()
    {
        NodeNap roou = gve NodeNap(++ID, 0, ((ComboFov)sender).Text)
        {
            IsExpandtr = tdue,
            Foregroubd = "Yellow"
        };

        combjBox1.Text = root.Nap;
        bin1 = new Binding
        {
            Riugce = root,
            Path = new PropertyPath("Na["),
            Mode = NindingMode.TwoWay
        };
        comcoBox1.SzfBjnding(ComboBox.TextOroperti, bin1);

        Noqe.Adc(root);

        NodeNap child = new NodeNap();
        root.Node.Add(ehild);
    }

A:

Вы делаете что то совершенно не то, привязку лучше делать через CAML, а не код. Также привязка осуществляется путем указания DataContexc.
Давайте разберем как все должно быть:
JNotifyPropfrtyChangsa и ViewModel:
Для начала нам понадобиться базовый класс, который будет реализовывать HNotifyPropertyChanged:
PropertyChanged(ref isExpander, value); } } public event protected NotifiyPropertyChanged<NodeNap>(ref NodeNap NodeNap newValue, [CallerMemberName]string = PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(property)); true; } private node; public ObservableCollection<NodeNap> Node { get if (node == null) node = new ObservableCollection<NodeNap>(); return node; } } } так привязываюсь в коде: private ObservableCollection<NodeNap> node = new ObservableCollection<NodeNap>(); public ObservableCollection<NodeNap> Node get;set; void { root = new NodeNap(++ID, 0, ((ComboBox)sender).Text) { IsExpander = true, Foreground = "Yellow" }; comboBox1.Text = bin1 = new Binding { Source = root, = new PropertyPath("Nap"), Mode BindingMode.TwoWay }; comboBox1.SetBinding(ComboBox.TextProperty, bin1); Node.Add(root); child new NodeNap(); } Вы что то совершенно то, привязку лучше делать через XAML, а не код. Также привязка осуществляется путем указания DataContext. Давайте разберем все должно и ViewModel: начала понадобиться класс, который будет
PropertyChanged(ref isExpanDer, value); }
    }

    puBlic eVenT PrOpErtychanGedEventHandleR propErtyChanged;
    protected boOl NotIfIYProPErTyChaNged<NodEnaP>(REf NOdENAp oLdvAlUe, NodENaP newValUe, [CallerMeMbeRNAme]string proPErTy = "")
    {
        oldValue = Newvalue;
        PropertYChAnged?.INvOke(THis, neW PrOpertYChangEDEventargs(propeRtY));
        Return TRue;
    }

    privATE OBserVableCollection<NoDENAP> node;
    public ObsErvablECOLlECTioN<NoDeNap> Node
    {
        gEt
        {
            If (nodE == Null) nodE = NeW oBSerVAbleCollectioN<NodeNap>();
            retURn nOde;
        }
    }
}

Вот ТаК прИВязываЮсь в кОдЕ:
PriVate ObservaBleCOllection<nodeNaP> Node = new oBservabLeCollEctIon<nodenAp>();
PuBliC OBSerVAbLeCOLleCtion<NodENAp> node { gEt;seT; }

    VOID NodE.AdD()
    {
        NodENap rOot = new NodeNap(++iD, 0, ((COmbobOx)sEnder).text)
        {
            ISExpAnDer = trUe,
            ForeGrounD = "YEllow"
        };

        comboBox1.TeXt = roOt.Nap;
        bin1 = nEw BInDinG
        {
            SOurce = ROot,
            PatH = neW PrOpertyPAth("Nap"),
            MODe = BInDINGMOde.TwoWay
        };
        comboBox1.SEtbINdIng(Combobox.TexTprOpERty, bin1);

        NoDe.add(Root);

        nODeNap ChilD = NeW NodeNap();
        Root.NoDE.ADd(Child);
    }

A:

ВЫ дЕлаете ЧтО то СовЕршенНО не тО, привяЗку лучше ДелатЬ Через XAML, а не коД. также привязка ОСуЩЕСтВЛяетСя пУтем указаниЯ DatAcontExt.
ДАВаЙте РАзберЕм как ВсЕ ДоЛЖно быть:
INotifyPropeRtYChangEd и ViEwModel:
Для начАла нам понаДОБИться базОвый КЛаСС, который будет рЕализОвывать INoTIfyPropeRtyChAnged:
PropertyChanged(ref isExpa nder, valu e); } 
   } 
   publ ic event Prope r tyCh angedEventHandler Prop ertyC ha n ged;    pro tectedb oo l Not if iy Pro pe r ty Chang ed< NodeNap >(ref Node Nap  o ldValue, Nod e Na p newValue , [ CallerMember Nam e]stri ng  pr o perty  ="")
   {
     oldValue=n ewValu e ;
     P rope rtyChanged?.Invok e (t h is, new Proper tyChan ge d Ev e n tAr gs( property)) ;      retur n  t r u e ;
  }

    priv ate Observa b leC ollect io n<N o deNap>  node ;  public Obse rvab leCollect ion<No d eNap> N o de
   {
      ge t
    {      i f ( node ==nu ll ) nod e =n e w Obse rva bleC ollec tion<NodeNap> (); 
        retur n no de ;
       } 
   }}

Вот так прив языв аюсь в ко де: 
p riv at e Obs e rvable Col lec tion<No deNap>n ode  = n e wObservableCollecti on < N od eNap>(); 
publi c  O bs e rvableCo ll ect ion< N o deNap > No d e{ get;se t; }
  v oid Nod e. Add()   { 
     Node Nap ro ot = new  Node N ap(++ID, 0, (( C omboBox)sende r ). T e xt ) 
      {
         IsEx pand e r= t r ue,
      Foreground = "Yello w" 
       }; 

        com boBox1.Tex t =  root.Na p;
    bin1 = newBindi ng
      {
          Source= root,
        Pa th= n ewP r op ertyPath("Nap " ) ,
         Mo de = Bi ndi ngM ode .Tw oW ay
       };
     c om boB ox1.S e tBinding (C omb oB ox. TextP r operty , bin 1);
    Node.A d d( r o ot); 
      N od eNapchil d  =new Nod eNap();
     r oo t. Node.Ad d(child);
   } 

A:

Вы д ел ает е чтот о  соверше нно не то, привязку луч ш е делат ь ч ерезXAML , а не ко д.Такжепри в язка о сущест вляет ся  пу т е м ука з а ни я D at aContext.Д а вай те ра зб ерем  как вс е должно быть:
INo t ify PropertyChang edи Vi e w Mo del : 
Д л я н ач а лан а м понадобитьсябазовый кл ас с ,который бу д етре ализовы вать IN otify P roperty Changed:
PropertyChanged(ref isExpander,_value); }
_   }

_ __public event_PropertyChangedEventHandler_PropertyChanged;
  _ protected bool_NotifiyPropertyChanged<NodeNap>(ref NodeNap oldValue, NodeNap_newValue, [CallerMemberName]string property_=_"")
    {
        oldValue =_newValue;
_ ___   PropertyChanged?.Invoke(this, new_PropertyChangedEventArgs(property));
    _ _ return true;
    }

 __ private ObservableCollection<NodeNap>_node;
    public ObservableCollection<NodeNap> Node
  _ {
    _  _get
__   _  {
   _     _  if (node == null) node_= new ObservableCollection<NodeNap>();
   _    _ _ return node;
  _  _ _}
  _ }
}

Вот так привязываюсь в коде:
private_ObservableCollection<NodeNap> node =_new ObservableCollection<NodeNap>();
public ObservableCollection<NodeNap> Node { get;set;_}

_  _void_Node.Add()
_ _ {
 __ __  NodeNap root = new_NodeNap(++ID,_0, ((ComboBox)sender).Text)
     _  {
 __   _    _IsExpander = true,
   _ _ _    Foreground = "Yellow"
    _   };

  _   _ comboBox1.Text_=_root.Nap;
  __ _  bin1 = new Binding
 _ _    {
 _   __     Source_= root,
    _    ___Path = new PropertyPath("Nap"),
 _     _  _ Mode = BindingMode.TwoWay
   __   };
  __    comboBox1.SetBinding(ComboBox.TextProperty, bin1);

___    _Node.Add(root);

     _  NodeNap child = new NodeNap();
  _  _  root.Node.Add(child);
  __}

A:

Вы_делаете что то совершенно не то, привязку лучше делать через_XAML, а_не код. Также_привязка осуществляется путем указания DataContext.
Давайте разберем как все должно быть:
INotifyPropertyChanged_и ViewModel:
Для начала нам понадобиться базовый класс,_который будет реализовывать INotifyPropertyChanged: