2016-06-29 9 views
0

Ich versuche, ein Objekt in die Datenbank mit dem MVVM-Muster über Textfelder einzufügen. Das eigentliche Problem besteht darin, das Objekt zuerst in das ViewModel zu bekommen. Meine Idee war, den NewCustomer des Customer-Typs in das ViewModel einzufügen und dann die Textfelder an die entsprechenden Eigenschaften zu binden. Hier ist, wie es aussieht:WPF MVVM Objekt über Textfelder einfügen

XAML:

<Label Content="First Name:" Grid.ColumnSpan="2" Margin="10,0,325,227"/> 
<TextBox Text="{Binding NewCustomer.FirstName}" Grid.Column="1" Margin="0,31,322,227"/> 
<Label Content="Last Name:" Grid.ColumnSpan="2" Margin="10,74,325,158"/> 
<TextBox Text="{Binding NewCustomer.LastName}" Margin="10,110,325,148" Grid.ColumnSpan="2"/> 
<Label Content="Bank Balance:" Margin="10,148,325,81" Grid.ColumnSpan="2"/> 
<TextBox Text="{Binding NewCustomer.BankBalance}" Grid.Column="1" Margin="0,179,322,81"/> 
<Label Content="About me:" Margin="10,215,325,10" Grid.ColumnSpan="2"/> 
<TextBox Text="{Binding NewCustomer.AboutMe}" Grid.Column="1" Margin="0,246,322,10"/> 
<Button Margin="255,113,67,141" Content="Add" Command="{Binding AddCommand}" Grid.Column="1"> 

Ansichtsmodell (die wichtigen Teile):

private Customer _newCustomer; 
public Customer NewCustomer 
{ 
    get { return _newCustomer; } 
    set 
    { 
     _newCustomer = value; 
     RaisePropertyChanged("NewCustomer"); 
    } 
} 
/.../ 
public void Add(object C) 
{ 

    db.Customers.Add(NewCustomer); 
    db.SaveChanges(); 
    LoadCustomers(); 

} 

public RelayCommand AddCommand { get; set; } 
#endregion 

Aber aus irgendeinem Grund die NewCustomer Eigenschaft ist immer null (über Debug-geprüft).

Irgendwelche Ideen? dies dank

Antwort

0

Es ist null, weil niemand es erstellt,

Verwendung,

private Customer _newCustomer = new Customer(); 

Die Werte sollten korrekt nach

Oder eine andere Art und Weise, in Ansichtsmodell Konstruktor do init

gebunden
NewCusomer = new Customer(); 
+0

Ich fühle mich jetzt ziemlich dumm ... Danke –