1

为了简化问题,我有一个文本框控件,我想应用两种方式绑定。例如,我在服务器端有一个名为 Customer 的对象类,silverlight 应用程序显然是一个单独的项目。

public class Customer
{
    public string Name{ get; set; }
}

在 WCF 服务中,我有查询填充客户名称,并返回客户类型的列表。

List<Customer> data = new List<Customer>();

然后在客户端我将它绑定到文本框控件:

<TextBox Canvas.Left="345" Canvas.Top="12" Height="23" Name="tb_customer" Width="120" Text="{Binding Path=Name}" />

List<ServiceReference.Customer> data = e.Result;
tb_customer.DataContext = data[0];

这工作正常,并将客户名称绑定到文本框控件。但我的问题是,当我在客户端更改值时,如何将修改后的客户名称发送回数据源,在本例中为 sqlserver 中名为客户的表。我需要在客户类上实现 INotifyPropertyChanged 吗?但是显然客户类是坐在服务器端的,所以我需要在客户端创建一个客户类的本地实例,然后通过 wcf 服务将这些更改上传回服务器吗?

4

1 回答 1

1

像这样设置文本框:

<TextBox Canvas.Left="345" Canvas.Top="12" Height="23" Name="tb_customer" Width="120" Text="{Binding Path=Name, Mode=TwoWay}" />

使用此设置,对文本框值所做的更改将在本地自动更新对象的状态。然后,您必须将更改提交回数据存储。如果您使用的是诸如实体框架之类的 ORM,那很容易——只需调用SubmitChanges()您的上下文即可。如果您不使用 ORM,则必须手动处理更新。

于 2012-04-25T16:43:52.687 回答