MVVM wpf-treeview(verbindliche?)

Sorry für die noob Frage. Vielleicht ist dies nicht die Frage - aber ich brauche ein tutorial, Beispiel -/
Ich bin versucht zu schreiben, ein Modell, Aufgabe zu bekommen "handy" mit mvvm-pattern in wpf. Ich bin entscheiden, etwas so zu schreiben Bibliothekar Helfer. Das ist eine einfache wpf-Fenster mit einer combobox(zur Auswahl, wenn das Buch fantasy oder sf), textbox (für die Buch-Namen-Eingang), Taste Hinzufügen, und ein treeview-Baum wie:

 Books
  ------>ScienceFic
        ----->bookName1
        ----->bookName2
  ------->Fantasy
        ------>bookName3

Und ich habe einige Schwierigkeiten mit Bindung und Trennung view-Modell zu sehen.
Könnten Sie mir helfen?

public enum LibraryType
{
    ScienceFic,
    Fantasy
}
    Class Model: INotifyPropertyChanged
    {
     private int bookId;
     private string bookName;
     private LibraryType bookType;
     public event PropertyChangedEventHandler PropertyChanged;
        //....and for all this fields  I have used a INotifyPropertyChanged as 
    /*
    http://stackoverflow.com/questions/1315621/implementing-inotifypropertychanged-does-a-better-way-exist
    */
    }

An dieser Stelle das MODELL ist fertig, denke ich.

Nun über ANSICHT:
Ich habe Sie einfach öffnen Sie editor von MainWindow und manuell hinzugefügten button, textbox, combobox und einem treeview.
Nach Zugabe von

comboBox1.ItemsSource = Enum.GetValues(typeof(LibraryType)).Cast<LibraryType>();
 comboBox1.SelectedIndex = 0;

Ich initialisiert habe meine combo mit richtigen Arten von Bücher))) Aber((, ich habe das getan in code, nicht in der XAML - ist dieses Recht für MVVM Binden? (erste Frage)
Als Nächstes habe ich binden lassen (wie ich vermute) meine textBox-text in das aktuelle Buch der name-Eigenschaft im ViewModel (ich habe das getan in XAML wie folgt):

 <TextBox Text="{Binding Path=CurrentBookName}"/>

ist das richtig? (zweite Frage)

Und schließlich VIEWMODEL

 Class ViewModel
{
  private string currentBookName;
  private LibraryType selectedBookType;
  public event PropertyChangedEventHandler PropertyChanged;
  //also properties and  OnPropertyChanged/SetField functions like in Model class

  //and finally I have created two lists for book storing
  private List<Model> sfStorage = new List<Model>();
  private List<Model> fantasyStorage = new List<Model>();
  //and simple getters for this two lists, like:
  public List<Model> GetSFStorage
  {
   get{return this.sfStorage;}
  }
  //and a simple function for addition of new books
  //that I plan to call when AddButton pressed
  public void Addition(???)
        {
            if (!string.IsNullOrEmpty(currentBookName))
            {
                //? I have add CurrentBookName in XAML of View (see above)
                //?but is it enough to have a property of CurrentBookType
                //to grant that a valide value from combobox will be here?
                var modelNewBook = new Model(CurrentBookName,CurrentBookType);
                switch (selectedBookType)
                {
                    case LibraryType.ScienceFic:
                        sfStorage.Add(modelNewBook);
                        break;
                    case LibraryType.Fantasy:
                        fantasyStorage.Add(modelNewBook);
                        break;
                    default:
                        return;
                }
            }
}

Jetzt bin ich nur paar Schritt von Erfolg gekrönt ist (sein kann), ABER, wie ich anschließen könnte
ein treeView mit diesen beiden Listen in xaml oder im code Und wie könnte ich nennen, die Neben Funktion
wenn ein Addbutton gedrückt (Dritte und wichtigste Frage)?
Dies ist vielleicht, noob Frage, aber ich wirklich brauchen eine Probe.
Und (vielleicht) diese Frage wird hilfreich sein für andere, die versuchen zu verstehen, MVVM und verbindlich.

InformationsquelleAutor curiousity | 2014-01-23

Schreibe einen Kommentar