public ChatViewModel() { KeyPropertyName = "UserName"; ParentIdPropertyName = "GroupName"; AllowClosePanel = true; PanelCaption = _caption; PanelCaptionImage = ImageResources.DCLDefault16.GetBitmapImage(); OpenChatWindow = new DelegateCustomCommand(OnOpenChatWindow, () => true); _jabber = (JabberManager)IoC.Instance.Resolve <IChatManager>(); Fields = new ObservableCollection <DataField>(new[] { new DataField() { FieldName = "UserName", SourceName = "UserName", Caption = "Список контактов", FieldType = typeof(string) } }); SelectedItems = new ObservableCollection <JidItem>(); var rooms = _jabber.GetRooms().ToArray(); ConversationItems = new ObservableCollection <ConversationViewModel>(rooms.Select(i => new ConversationViewModel(i.Name, i))); foreach (var cm in ConversationItems) { cm.PrivateRoom += conversation_PrivateRoom; } //INFO: если были входящие сообщения от пользователей, то откроем с ними вкладки foreach (var r in rooms) { foreach (var user in r.GetUsers()) { if (r.GetMessages(user).Any(i => i.State == MsgState.Received)) { conversation_PrivateRoom(user, r, false); } } } RefreshData(); }