我是mvvm的新手,基本上是我的第一次尝试。现在我有一个WPF窗口,ado.net连接到我的数据库,wcf服务在viewmodel和数据库之间建立连接。问题是我无法将数据从视图添加到数据库。 这里有一些代码 我的wcf方法:
[OperationContract]
public void ManageOrder(Order order, EntityState state)
{
using (var context = new SvLaserEntities())
{
context.Attach(order);
context.ObjectStateManager.ChangeObjectState(order, state);
context.SaveChanges();
}
}
[OperationContract]
public void ManageClient(Client client, EntityState state)
{
using (var context = new SvLaserEntities())
{
context.Attach(client);
context.ObjectStateManager.ChangeObjectState(client, state);
context.SaveChanges();
}
}
用于绑定到按钮的命令:
public ICommand AddClient
{
get
{
if ((addClient == null) && (CurrentClient != null))
{
addClient = new RelayCommand(() => this.client.ManageClientAsync(CurrentClient, EntityState.Added));
}
return addClient;
}
}
其中一个文本框的xaml代码:
<TextBox HorizontalAlignment="Left" Height="28"
Margin="469,50,0,0" TextWrapping="Wrap"
VerticalAlignment="Top" Width="160"
Text="{Binding CurrentClient.Name, Mode=Default, UpdateSourceTrigger=PropertyChanged}"
/>
直接问题是当我填充文本框并单击添加它们时,我在此处捕获空引用异常,在客户端参数:
public void ManageClient(Client client, EntityState state)
我做错了什么?
答案 0 :(得分:1)
改变了
绑定到TWOway的模式属性,如
<TextBox Text="{Binding CurrentClient.Name, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
请确保在viewmodel和model中实现了INotifyPropertyChanged