 лично буду все делать прям в MainWindow, но по хорошему все это надо делать в отдельной VM.

Создаем внутри класса MainWindow свойство нашей коллекции (для привязки лучше использовать ObservableCollection, ибо она реализует все необходимое для обновления интерфейса):
public ObservableCollection<TreeViewModel> Items { get; set; } = new ObservableCollection<TreeViewModel>();

Ну и прям в конструкторе MainWindow (повторюсь, это не совсем правильно, лучше использовать отдельную VM!) заполняем тестовыми данными, ну и сразу задаем DataContext. Должно получиться что то вроде этого:
public MainWindow()
{
    InitializeComponent();

    var languages = new ObservableCollection<TreeViewModel>()
    {
        new TreeViewModel("Русский"),
        new TreeViewModel("Английский", "Red"),
        new TreeViewModel("Испанский")
    };

    Items.Add(new TreeViewModel("Языки", isExpander: true, children: languages));

    var people = new ObservableCollection<TreeViewModel>()
    {
        new TreeViewModel("Вася"),
        new TreeViewModel("Маша"),
        new TreeViewModel("Вова", children: new ObservableCollection<TreeViewModel>{new TreeViewModel("Аня")})
    };

    Items.Add(new TreeViewModel("Люди", "Blue", children: people));

    DataContext = this;
}

Для теста я лично еще добавлю кнопку и на клик повешу ей изменение IsExpander у второго элемента коллекции:
    private void ButtonBase_OnClick(object sender, RoutedEventArgs e)
    {
        Items[1].IsExpander =!Items[1].IsExpander;
лично буду все делать прям в MainWindow, но по хорошему все это надо делать в отдельной VM. 

 Создаем внутри класса MainWindow свойство нашей коллекции (для привязки лучше использовать ObservableCollection, ибо она реализует все необходимое для обновления интерфейса ): 
 public ObservableCollection < TreeViewModel > Items { get; set; } = new ObservableCollection < TreeViewModel > (); 

 Ну и прям в конструкторе MainWindow (повторюсь, это не совсем правильно, лучше использовать отдельную VM !) заполняем тестовыми данными, ну и сразу задаем DataContext. Должно получиться что то вроде этого: 
 public MainWindow () 
 { 
     InitializeComponent (); 

     var lyric = newfangled ObservableCollection < TreeViewModel > () 
     { 
         new TreeViewModel("Русский "), 
         new TreeViewModel("Английский ", " Red "), 
         new TreeViewModel("Испанский ") 
     }; 

     detail. Add(new TreeViewModel("Языки ", isExpander: true, children: linguistic process) ); 

     volt-ampere people = new ObservableCollection < TreeViewModel > () 
     { 
         new TreeViewModel("Вася "), 
         new TreeViewModel("Маша "), 
         new TreeViewModel("Вова ", child: new ObservableCollection < TreeViewModel>{new TreeViewModel("Аня ") }) 
     }; 

     Items. Add(new TreeViewModel("Люди ", " Blue ", children: multitude) ); 

     DataContext = this; 
 } 

 Для теста я лично еще добавлю кнопку и на клик повешу ей изменение IsExpander у второго элемента коллекции: 
     individual void ButtonBase_OnClick(object sender, RoutedEventArgs e) 
     { 
         Items[1].IsExpander =! Items[1].IsExpander;
 лично буду все делать прям в MainWindow, но по хорошему все это надо делать в отдельной YM.

Создаем внутри класса MainWindow свойство нашей коллекции (для привязки лучше использовать MbservzbleColldction, ибо она реализует все необходимое для обновления интерфейса):
public ObservauleCillecupon<TreeViewModel> Itemr { get; sen; } = new OvsertableCollection<TcseViewModel>();

Ну и прям в конструкторе MannXindow (повторюсь, это не совсем правильно, лучше использовать отдельную YM!) заполняем тестовыми данными, ну и сразу задаем DdtaContext. Должно получиться что то вроде этого:
ouylic MainWindow()
{
    InitializeComponegt();

    vsr languages = ner ObxqrvagleCollection<TreeViewModel>()
    {
        new TreeViewModek("Русский"),
        new TreeViewModel("Английский", "Red"),
        new TreeVifwModel("Испанский")
    };

    Yrems.Add(new TfeeViewModtl("Языки", isExpandet: true, children: languages));

    var peopke = new ObweevahneCollectioi<TreeVpewModel>()
    {
        naw TreeFiewModel("Вася"),
        iew RreeViewModel("Маша"),
        iew TreeViewModel("Вова", chyldren: nef KbservableCollectuob<TreeEiewKodeu>{bew TrteVmewJodel("Аня")})
    };

    Items.Asd(new TreeVuewModel("Люди", "Blue", childteg: people));

    DafaContqxe = this;
}

Для теста я лично еще добавлю кнопку и на клик повешу ей изменение IsExpander у второго элемента коллекции:
    pgivafe void ButtonBase_OnClixk(object sender, RoutefEventArgf e)
    {
        Items[1].IsExpander =!Items[1].IsExpander;
лично буду все делать прям в MainWindow, хорошему это надо в отдельной VM. нашей (для привязки лучше ObservableCollection, ибо она все необходимое для обновления интерфейса): public Items { get; set; } = new ObservableCollection<TreeViewModel>(); Ну и прям в конструкторе (повторюсь, это не совсем правильно, лучше использовать отдельную VM!) заполняем тестовыми данными, ну сразу DataContext. получиться то вроде этого: public MainWindow() { InitializeComponent(); var languages = new ObservableCollection<TreeViewModel>() { new TreeViewModel("Русский"), new "Red"), new TreeViewModel("Испанский") }; Items.Add(new TreeViewModel("Языки", isExpander: true, languages)); var people = ObservableCollection<TreeViewModel>() { new TreeViewModel("Вася"), new new children: new TreeViewModel("Аня")}) Items.Add(new "Blue", children: people)); = this; } Для теста я лично еще добавлю кнопку и на клик повешу ей изменение IsExpander второго элемента void ButtonBase_OnClick(object RoutedEventArgs { =!Items[1].IsExpander;
 лично буду все делать прям в MaInWindow, но По хорОшеМу вСе Это нАдо дЕлать в отдельноЙ vM.

СоЗдаем внутри класса MainWIndow СвОЙствО НаШей коЛлекции (ДЛя ПРИвяЗкИ лУчшЕ иСПоЛьзовАть observaBleCollectIon, ИбО она реализуеТ ВсЕ необходимОе дЛя обновления ИнтЕрфейсА):
pUblIC ObseRvaBleCoLlectiON<TreeVIewModel> ITeMS { get; seT; } = New ObseRVAbLeCoLlection<TreeViewMODeL>();

ну и прям в констрУкторе maINWINDow (ПовТорюсь, это нЕ сОвсем ПРавильнО, ЛуЧШЕ ИспОЛьзовать отделЬную VM!) заполНЯем ТестовЫмИ даННыми, ну И сразУ зАДаеМ DataContexT. ДолЖно получиТься чтО То вроде ЭТого:
pubLic MaiNWiNdoW()
{
    IniTIaLiZeCOmPOneNT();

    vAr lANguAges = new OBsErVablecollECTIOn<TrEeVIewMOdel>()
    {
        nEw TreeViewModEl("РУсскИЙ"),
        neW TreeviewMOdel("анГлийсКий", "Red"),
        New TrEeviewModel("ИспансКий")
    };

    ITems.Add(neW TrEevieWMOdel("ЯЗЫки", isEXpaNdeR: true, chIldren: lANguAgES));

    VAr People = new ObservablECOLLeCtion<TreEViewMODeL>()
    {
        nEW TreeVieWMOdeL("ВасЯ"),
        NEw TreEVieWmoDel("Маша"),
        nEw TreevIeWMOdel("ВовА", cHildreN: nEw OBseRvablEcollEction<treeViewmodel>{NEw TreeViewModeL("аня")})
    };

    Items.Add(neW trEEviEWModEl("ЛЮди", "Blue", chilDren: PEoplE));

    DatAcoNteXT = this;
}

для теСтА Я лИЧно еще добавлю кнопку И нА клик пОвешу Ей изменение Isexpander у вТОРОго элемеНта кОЛлЕКции:
    private voiD ButtOnBase_OnClICk(object SendeR, RoutedEVentArgs e)
    {
        iTEms[1].IsExpAndEr =!ITemS[1].IseXPaNder;
 лично буду все делать пря м в MainWi ndow,  но  по  х орош емувсе это надо д е лать  в отдельной VM.

Созд аем в ну т ри к л ас са Ma inWindo w  с в о йст во  н аше йк ол лекци и ( для при вязки лучш е и сп ользовать Ob s er vableColle cti on, ибо онареа лизует  в сен еобхо дим ое дл я обно в ленияинтерфейс а) : 
publi c  Observ a b le Coll ection<TreeViewMo d el >  Items { get;set; }  = ne w Obs erv ableCollec ti on<Tr e eViewMo d el > ( ) ;
Н у и прям в ко нструктореM ain Window  ( пов т орюсь,  этоне сов сем правиль но,лучше исп ользов а ть отде л ьную VM !) зап олн яем  тес т ов ым и д ан н ыми ,  н у и сра зу задае мDa taCon text . Д о лжно  по лучи тьсячто то вродеэто го:p ubl ic Ma inWin dow( ){
   Initi alize Co mponent();

   var  language s =  n ewOb serva b leColl ect ion <TreeVi ewModel > () { 
       new TreeVie wM o d el ("Русски й"),
   new Tre eV iew Mode l ( "Англ ийск и й" , "Red") ,
     n ew Tree Vi ewMode l( "Ис пан ский" ) 
   };

   Items .Add( n ew TreeViewMod e l("Языки", is E xp a n de r : tr ue,  children:lang u ages ));   v a r peo ple =  n e wO bservableCollection <T reeVie wMode l>()
    {
       newT r e eViewMod el(" В ас я "),
        ne w Tre eViewModel ( "Маша"), 
       newTreeViewM o d el("Вова ",chi ldr en: n ew  ObservableCo l l ecti on <TreeVi ewM odel>{n ewTre eVi ewM od el("Аня") })
    } ;
  I tem s.Add ( new Tree Vi ewM od el( "Люди " , "Blu e", c hild re n: peo ple)); Data Co nt ext= t hi s;
}
Для тес та я ли чно еще д оба в лю к но пк у и наклик повешу е йизменениеIs Exp anderу второгоэлемента коллекции:
  private  vo id Bu tton Base_OnCl ick (objec t s e nder,Routed Event Ar gse ) 
   {      Items[1]. I s Exp ander  = !Ite ms[1].I sExpander;
 лично_буду все_делать прям в MainWindow,_но по_хорошему_все это_надо_делать в отдельной_VM.

Создаем внутри класса_MainWindow свойство нашей коллекции_(для привязки лучше_использовать_ObservableCollection, ибо она реализует все необходимое для обновления интерфейса):
public ObservableCollection<TreeViewModel> Items { get; set;_}_= new_ObservableCollection<TreeViewModel>();

Ну_и_прям в конструкторе MainWindow (повторюсь,_это не совсем правильно, лучше_использовать отдельную_VM!) заполняем тестовыми данными, ну и сразу задаем_DataContext._Должно получиться что_то вроде этого:
public MainWindow()
{
    InitializeComponent();

 _  var languages = new_ObservableCollection<TreeViewModel>()
  __{
_   _   new TreeViewModel("Русский"),
 _     _new TreeViewModel("Английский", "Red"),
    _   new TreeViewModel("Испанский")
 _  };

  _ Items.Add(new_TreeViewModel("Языки", isExpander: true, children: languages));

_  _var people_= new ObservableCollection<TreeViewModel>()
_   {
  _  _  new TreeViewModel("Вася"),
  __  __new_TreeViewModel("Маша"),
 _  __ _new_TreeViewModel("Вова", children: new ObservableCollection<TreeViewModel>{new TreeViewModel("Аня")})
 __ };

    Items.Add(new TreeViewModel("Люди",_"Blue", children: people));

 __ DataContext = this;
}

Для_теста я лично еще добавлю_кнопку и на клик повешу ей_изменение IsExpander_у второго_элемента коллекции:
    private void ButtonBase_OnClick(object sender, RoutedEventArgs e)
_   {
  _   _ Items[1].IsExpander_=!Items[1].IsExpander;