WCF回调传递ObservableCollection

时间:2011-01-07 13:11:52

标签: wpf wcf

我正在尝试从我的服务中传回一个嵌套的可观察集合,因此我可以轻松地将其绑定到树视图控件(公司部门下的列出用户)。

服务正在正确生成集合,但是当客户端收到它时只是结构而不是内部数据,即它知道第一部门下有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;

    }

}

0 个答案:

没有答案