【发布时间】:2012-05-22 19:24:27
【问题描述】:
我是 Silverlight 的新手。
我有一个带有数据网格和其他表单元素的用户控件。 我正在尝试以编程方式实现绑定,从 WCF 服务加载数据。
这就是我所拥有的,我不知道如何让它真正发挥作用:
public class DepartmentObject
{
public Guid Id { get; set; }
public string Name { get; set; }
public IEnumerable<Person> People { get; set; }
}
public partial class DepartmentView : UserControl
{
ObservableCollection<Person> LocalPeople { get; set; }
Service1Client client = new Proj.ServiceReference1.Service1Client();
public TemplateView(Guid departmentId)
{
InitializeComponent();
client.GetDeptCompleted += (sender, e) =>
{
this.DataContext = e.Result; //DepartmentObject w/People member IEnumerable<Person>
this.peopleList.SetBinding(DataGrid.ItemsSourceProperty, new Binding("People"));
LocalPeople = new ObservableCollection<Person>(e.Result.People);
};
client.GetDeptAsync(departmentId);
}
private void Add_Person_Click(object sender, RoutedEventArgs e)
{
LocalPeople.Add(new Person() { Name = String.Format("Person [{0}]", LocalPeople.Count) });
}
}
现在,我明白为什么它不起作用了 - 可观察集合和数据上下文之间没有“连接”,但正确的做法是什么?
peopleList是一个DataGrid,当一个人被选中时会有二次绑定。
我希望最终能够点击“保存”并获得 DepartmentObject 中更改的所有内容。
我浏览了 很多 示例,所有 SL 2-3-4 示例都不同且令人困惑。
【问题讨论】:
标签: wcf silverlight data-binding silverlight-5.0