private static void CreateContextMenu(ChatControl chatControl, ItemsControl contextMenu) { var miClear = new MenuItem { Header = "Clear", DataContext = chatControl }; miClear.Click += OnClearClick; contextMenu.Items.Add(miClear); var miUseBlocking = new MenuItem { Header = "Use blocking", DataContext = chatControl, IsCheckable = true, IsChecked = chatControl.Settings.UseBlocking }; miUseBlocking.Click += OnUseBlockingClick; contextMenu.Items.Add(miUseBlocking); var miRuOnly = new MenuItem { Header = "Russian only", DataContext = chatControl, IsCheckable = true, IsChecked = chatControl.Settings.RussianOnly }; miRuOnly.Click += OnRuOnlyClick; contextMenu.Items.Add(miRuOnly); }
private void OnChatMessage(ChatMessage message) { this.Do(() => { foreach (TabItem tabItem in _tabControl.Items) { if (tabItem.Header == message.Channel) { return; } } var chatSettings = new ChannelSettings { Channel = message.Channel, UseBlocking = true, RussianOnly = true }; _chatsSettings.Add(chatSettings); var chatControl = new ChatControl(_eventsSource, _chatsSettings) { Channels = new[] { message.Channel } }; var newItem = new TabItem { Header = message.Channel, Content = chatControl, ContextMenu = new ContextMenu() }; CreateContextMenu(chatControl, newItem.ContextMenu); _tabControl.Items.Add(newItem); chatControl.OnChatMessage(message); }); }