我正在尝试从我的服务中传回一个嵌套的可观察集合,因此我可以轻松地将其绑定到树视图控件(公司部门下的列出用户)。
服务正在正确生成集合,但是当客户端收到它时只是结构而不是内部数据,即它知道第一部门下有3个部门和2个用户,但所有数据都是空的。
下面的服务端代码
_Callback = OperationContext.Current.GetCallbackChannel<IWhiteboardChat>();
_Users[_User] = _Callback;
ObservableCollection<UserListing> existingUsers = new ObservableCollection<UserListing>();
foreach (UserGroup ug in _UserGroups)
{
if (ug.OrganisationID.Equals(_User.OrganisationID, stringComparison.OrdinalIgnoreCase))
{
ObservableCollection<User> users = new ObservableCollection<User>();
foreach (User u in _Users.Keys)
{
if ((u.OrganisationID.Equals(_User.OrganisationID, StringComparison.OrdinalIgnoreCase)) &&
(!u.UserName.Equals(_User.UserName, StringComparison.OrdinalIgnoreCase)) &&
(u.UserGroupID.Equals(ug.ID, StringComparison.OrdinalIgnoreCase)))
{
users.Add(u);
}
}
if (users.Count > 0)
{
existingUsers.Add(new UserListing(ug.UserGroupName, users));
}
}
}
_Callback.SvrSendingCompleteUserListing(existingUsers);
下面的客户端代码
public partial class PageMain : Page
{
private ObservableCollection<UserListing> _Users = new ObservableCollection<UserListing>();
public PageMain()
{
InitializeComponent();
}
public void ReceiveFullUserListing(ObservableCollection<UserListing> userListing)
{
_Users = userListing;
tvUsers.ItemsSource = _Users;
}
}