private void OnSwimLanesSourceChanged(IEnumerable values) { DebugHelper.AssertUIThread(); foreach (DataBar dataBar in this.dataBars) { this.RemoveDataBar(dataBar); } this.dataBars.Clear(); if (values != null) { foreach (object value in values) { DataBar dataBar = null; FrameworkElement sidebar = null; KStudioSeekableEventStream seekableEventStream = value as KStudioSeekableEventStream; if (seekableEventStream != null) { sidebar = new ContentControl() { Content = seekableEventStream, ContentTemplate = this.SidebarTemplate, ContentTemplateSelector = this.SidebarTemplateSelector, }; IEventLaneDataSource eventDataSource = seekableEventStream.UserState as IEventLaneDataSource; if (eventDataSource != null) { EventLane2 eventDataBar = new EventLane2(eventDataSource.MinTime, eventDataSource.MaxTime) { DataContext = seekableEventStream, DataSource = eventDataSource, }; dataBar = eventDataBar; } } if (dataBar == null) { dataBar = new DataBar(); } this.dataBars.Add(dataBar); this.AddDataBar(dataBar, sidebar, GridLength.Auto); } } }
private void OnSwimLanesSourceChanged(IEnumerable values) { DebugHelper.AssertUIThread(); foreach (DataBar dataBar in this.dataBars) { this.RemoveDataBar(dataBar); } this.dataBars.Clear(); if (values != null) { foreach (object value in values) { DataBar dataBar = null; FrameworkElement sidebar = null; KStudioSeekableEventStream seekableEventStream = value as KStudioSeekableEventStream; if (seekableEventStream != null) { sidebar = new ContentControl() { Content = seekableEventStream, ContentTemplate = this.SidebarTemplate, ContentTemplateSelector = this.SidebarTemplateSelector, }; IEventLaneDataSource eventDataSource = seekableEventStream.UserState as IEventLaneDataSource; if (eventDataSource != null) { EventLane2 eventDataBar = new EventLane2(eventDataSource.MinTime, eventDataSource.MaxTime) { DataContext = seekableEventStream, DataSource = eventDataSource, }; dataBar = eventDataBar; } } if (dataBar == null) { dataBar = new DataBar(); } this.dataBars.Add(dataBar); this.AddDataBar(dataBar, sidebar, GridLength.Auto); } } }