/// <summary> /// Adiciona um separador de chat com todas as suas mensagens /// <para>Se o separador já existir não adiciona.</para> /// </summary> /// <param name="displayName">Nome a mostrar no título do separador</param> /// <param name="displayId">Id a mostrar no titulo do separador</param> /// <param name="idName">Id a colocar no Name (identificador) do separador</param> private void AddSeparadorChat(string displayName, string displayId, string idName) { string tabHeader = displayId == null ? displayName : $"{displayName} ({displayId})"; bool existeTabIgual = false; TabItems.ForEach(tab => { if ((string)tab.Header != tabHeader) { return; } existeTabIgual = true; }); if (existeTabIgual) { return; } ChatTabControl.DataContext = null; int count = TabItems.Count; TabItem novaTabItem = new TabItem { Header = tabHeader, Name = idName, HeaderTemplate = ChatTabControl.FindResource("TabHeader") as DataTemplate }; ScrollViewer chatScrollViewer = new ScrollViewer { Name = $"{idName}ScrollViewer" }; ItemsControl chatItemsControl = new ItemsControl(); StackPanel chatStackPanel = new StackPanel { Name = $"{idName}StackPanel" }; chatItemsControl.Items.Add(chatStackPanel); chatScrollViewer.Content = chatItemsControl; novaTabItem.Content = chatScrollViewer; TabItems.Insert(count, novaTabItem); ChatTabControl.DataContext = TabItems; ChatTabControl.SelectedItem = novaTabItem; if (idName == "id0") { return; } MainViewModel.ServerConnectService.EntrarChat(idName); }