private static object CoerceSelectedObjects(DependencyObject d, object value) { WpfPropertyGrid pg = d as WpfPropertyGrid; object single = pg.GetValue(SelectedObjectsProperty); return(single == null ? new object[0] : value); }
private static object CoerceSelectedObject(DependencyObject d, object value) { WpfPropertyGrid pg = d as WpfPropertyGrid; object[] collection = pg.GetValue(SelectedObjectsProperty) as object[]; return((collection != null && collection.Length == 0) ? null : value); }
private static void PropertySortPropertyChanged(DependencyObject source, DependencyPropertyChangedEventArgs e) { WpfPropertyGrid pg = source as WpfPropertyGrid; PropertySort sort = (PropertySort)e.NewValue; bool isAlpha = (sort == PropertySort.Alphabetical || sort == PropertySort.NoSort); pg.IsInAlphaViewMethod.Invoke(pg.Designer.PropertyInspectorView, new object[] { isAlpha }); }
private static void SelectedObjectsPropertyChanged(DependencyObject source, DependencyPropertyChangedEventArgs e) { WpfPropertyGrid pg = source as WpfPropertyGrid; pg.CoerceValue(SelectedObjectsProperty); object[] collection = e.NewValue as object[]; if (collection.Length == 0) { pg.OnSelectionChangedMethod.Invoke(pg.Designer.PropertyInspectorView, new object[] { null }); pg.SelectionTypeLabel.Text = string.Empty; } else { bool same = true; Type first = null; var context = new EditingContext(); var mtm = new ModelTreeManager(context); Selection selection = null; // Accumulates the selection and determines the type to be shown in the top of the PG for (int i = 0; i < collection.Length; i++) { mtm.Load(collection[i]); if (i == 0) { selection = Selection.Select(context, mtm.Root); first = collection[0].GetType(); } else { selection = Selection.Union(context, mtm.Root); if (!collection[i].GetType().Equals(first)) { same = false; } } } pg.OnSelectionChangedMethod.Invoke(pg.Designer.PropertyInspectorView, new object[] { selection }); pg.SelectionTypeLabel.Text = same ? first.Name + " <multiple>" : "Object <multiple>"; } pg.ChangeHelpText(string.Empty, string.Empty); }
private static void HelpVisiblePropertyChanged(DependencyObject source, DependencyPropertyChangedEventArgs e) { WpfPropertyGrid pg = source as WpfPropertyGrid; if (e.NewValue != e.OldValue) { if (e.NewValue.Equals(true)) { pg.RowDefinitions[1].Height = new GridLength(5); pg.RowDefinitions[2].Height = new GridLength(pg.HelpTextHeight); } else { pg.HelpTextHeight = pg.RowDefinitions[2].Height.Value; pg.RowDefinitions[1].Height = new GridLength(0); pg.RowDefinitions[2].Height = new GridLength(0); } } }
private static void SelectedObjectPropertyChanged(DependencyObject source, DependencyPropertyChangedEventArgs e) { WpfPropertyGrid pg = source as WpfPropertyGrid; pg.CoerceValue(SelectedObjectsProperty); if (e.NewValue == null) { pg.OnSelectionChangedMethod.Invoke(pg.Designer.PropertyInspectorView, new object[] { null }); pg.SelectionTypeLabel.Text = string.Empty; } else { var context = new EditingContext(); var mtm = new ModelTreeManager(context); mtm.Load(e.NewValue); Selection selection = Selection.Select(context, mtm.Root); pg.OnSelectionChangedMethod.Invoke(pg.Designer.PropertyInspectorView, new object[] { selection }); pg.SelectionTypeLabel.Text = e.NewValue.GetType().Name; } pg.ChangeHelpText(string.Empty, string.Empty); }
private static void ToolbarVisiblePropertyChanged(DependencyObject source, DependencyPropertyChangedEventArgs e) { WpfPropertyGrid pg = source as WpfPropertyGrid; pg.PropertyToolBar.Visibility = e.NewValue.Equals(true) ? Visibility.Visible : Visibility.Collapsed; }