private void FunctionInstanceDataGrid_SelectionChanged(object sender, SelectionChangedEventArgs e) { FunctionStats.Sample sample = FunctionInstanceDataGrid.SelectedItem as FunctionStats.Sample; if (sample != null) { FunctionViewModel vm = DataContext as FunctionViewModel; if (vm != null) { vm.OnDataClick(this, sample.Index); } } }
public void OnDataClick(FrameworkElement parent, int index) { if (Stats != null && 0 <= index && index < Stats.Samples.Count) { FunctionStats.Sample sample = Stats.Samples[index]; Entry maxEntry = null; double maxDuration = 0; sample.Entries.ForEach(e => { if (maxDuration < e.Duration) { maxDuration = e.Duration; maxEntry = e; } }); if (maxEntry != null) { EventNode maxNode = maxEntry.Frame.Root.FindNode(maxEntry); parent.RaiseEvent(new TimeLine.FocusFrameEventArgs(TimeLine.FocusFrameEvent, new EventFrame(maxEntry.Frame, maxNode), null)); } } }