private void OpenSmileFeatureList_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     OpenSmileShowFeatureIndex = OpenSmileFeatureList.SelectedIndex;
     lock (OpenSmileFeatureDisplay) {
         OpenSmileFeatureDisplay.Clear();
     }
 }
        private void OpenSmileVectorOutputPropertyChangedEventHandler(object sender, PropertyChangedEventArgs e)
        {
            if (e.PropertyName == nameof(OpenSmileVisualizer.Vector))
            {
                Dispatcher.Invoke(() => {
                    var v = Comp.Vector;
                    if (v != null)
                    {
                        if (OpenSmileFeatureList.Items.Count != v.Fields.Count)
                        {
                            OpenSmileFeatureList.ItemsSource = v.Fields;
                        }

                        var i = OpenSmileShowFeatureIndex;
                        if (0 <= i && i < v.Fields.Count)
                        {
                            foreach (var d in v.Fields[i].Data)
                            {
                                OpenSmileFeatureDisplay.Update(d);
                            }
                        }
                    }
                }, DispatcherPriority.Normal, CancellationToken.None, TimeSpan.FromMilliseconds(500));
            }
        }