Я пытаюсь вернуть из своего сервиса вложенную наблюдаемую коллекцию, чтобы я мог легко связать ее с элементом управления древовидного представления (список пользователей в отделах компании).
Служба генерирует коллекцию правильно, но когда клиент получает ее, это просто структура, а не данные внутри, т. Е. Она знает, что в 1-м отделе есть 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;
}
}