public ComparisonTypeSelectView(IComparisonType comparisonType, bool onlyNumeric) { InitializeComponent(); var comparisonTypes = Lazurite.CoreActions.Utils.GetComparisonTypes(); if (!onlyNumeric) { comparisonTypes = Lazurite.CoreActions.Utils.GetComparisonTypes().Where(x => !x.OnlyNumeric).ToArray(); } foreach (var type in comparisonTypes) { var cType = type; var itemView = new ItemView(); if (type.GetType().Equals(comparisonType.GetType())) { Loaded += (o, e) => itemView.Selected = true; } itemView.Content = type.Caption; itemView.Margin = new Thickness(0, 0, 0, 1); itemView.IconVisibility = Visibility.Collapsed; itemView.Click += (o, e) => Selected?.Invoke(cType); listItems.Children.Add(itemView); } }
public static void Show(Action <IComparisonType> callback, IComparisonType selected, bool onlyNumeric) { var control = new ComparisonTypeSelectView(selected, onlyNumeric); var dialog = new DialogView(control); dialog.ShowUnderCursor = true; control.Selected += (type) => { callback?.Invoke(type); dialog.Close(); }; dialog.Show(); }