diff --git a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Controls/AdornerLayer.cs b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Controls/AdornerLayer.cs index 75d46a8d14..eee966f0e9 100644 --- a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Controls/AdornerLayer.cs +++ b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Controls/AdornerLayer.cs @@ -64,7 +64,8 @@ namespace ICSharpCode.WpfDesign.Designer.Controls public void CopyTo(AdornerPanel[] array, int arrayIndex) { - Func.ToArray(this).CopyTo(array, arrayIndex); + foreach (AdornerPanel panel in this) + array[arrayIndex++] = panel; } public bool Remove(AdornerPanel item) diff --git a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Controls/PropertyEditor/PropertyEditor.cs b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Controls/PropertyEditor/PropertyEditor.cs index 92f04d7ec6..0e09c99d2f 100644 --- a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Controls/PropertyEditor/PropertyEditor.cs +++ b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Controls/PropertyEditor/PropertyEditor.cs @@ -9,6 +9,7 @@ using System; using System.ComponentModel; using System.Collections.Generic; using System.Diagnostics; +using System.Linq; using System.Windows; using System.Windows.Controls; using System.Windows.Input; @@ -92,7 +93,7 @@ namespace ICSharpCode.WpfDesign.Designer if (useCategories) { List categories = new List(); - foreach (IPropertyEditorDataProperty p in Func.Sort(dataSource.Properties, CompareMemberNames)) { + foreach (IPropertyEditorDataProperty p in dataSource.Properties.OrderBy(p2 => p2.Name)) { if (p.Name == "Name") { continue; } @@ -111,7 +112,7 @@ namespace ICSharpCode.WpfDesign.Designer } else { PropertyGridView grid = new PropertyGridView(); contentStackPanel.Children.Add(grid); - foreach (IPropertyEditorDataProperty p in Func.Sort(dataSource.Properties, CompareMemberNames)) { + foreach (IPropertyEditorDataProperty p in dataSource.Properties.OrderBy(p2 => p2.Name)) { if (p.Name == "Name") { continue; } @@ -128,16 +129,11 @@ namespace ICSharpCode.WpfDesign.Designer PropertyGridView grid = new PropertyGridView(); contentStackPanel.Children.Add(grid); - foreach (IPropertyEditorDataEvent e in Func.Sort(dataSource.Events, CompareMemberNames)) { + foreach (IPropertyEditorDataEvent e in dataSource.Events.OrderBy(p => p.Name)) { grid.AddEvent(e); } } - static int CompareMemberNames(IPropertyEditorDataMember p1, IPropertyEditorDataMember p2) - { - return p1.Name.CompareTo(p2.Name); - } - HashSet expandedCategories = new HashSet(); PropertyEditorCategoryView GetOrCreateCategory(List categories, string category) diff --git a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Controls/TypeEditors/BrushEditor.cs b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Controls/TypeEditors/BrushEditor.cs index 0eb3664f4d..881b243f97 100644 --- a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Controls/TypeEditors/BrushEditor.cs +++ b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Controls/TypeEditors/BrushEditor.cs @@ -46,15 +46,22 @@ namespace ICSharpCode.WpfDesign.Designer.Controls.TypeEditors SetDock(ddb, Dock.Right); this.Children.Add(ddb); this.Children.Add(brushShowingBorder); + + this.Unloaded += delegate { + if (dlg != null) + dlg.Close(); + }; } + BrushEditorDialog dlg; + void DropDownButtonClick(object sender, RoutedEventArgs e) { - BrushEditorDialog dlg = new BrushEditorDialog(); + dlg = new BrushEditorDialog(property); Point pos = ddb.PointToScreen(new Point(ddb.ActualWidth, ddb.ActualHeight)); dlg.Left = pos.X - dlg.Width; dlg.Top = pos.Y; - dlg.SelectedBrush = brushShowingBorder.BorderBrush; + dlg.SelectedBrush = property.Value as Brush; dlg.SelectedBrushChanged += delegate { property.Value = dlg.SelectedBrush; }; diff --git a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Controls/TypeEditors/BrushEditorDialog.xaml.cs b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Controls/TypeEditors/BrushEditorDialog.xaml.cs index 37fc9bb561..f08112e90e 100644 --- a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Controls/TypeEditors/BrushEditorDialog.xaml.cs +++ b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Controls/TypeEditors/BrushEditorDialog.xaml.cs @@ -1,9 +1,10 @@ using System; using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; using System.Reflection; using System.Text; using System.Windows; -using System.Linq; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; @@ -12,6 +13,9 @@ using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Shapes; +using ICSharpCode.WpfDesign.PropertyEditor; +using System.Windows.Threading; + namespace ICSharpCode.WpfDesign.Designer.Controls.TypeEditors { /// @@ -25,7 +29,7 @@ namespace ICSharpCode.WpfDesign.Designer.Controls.TypeEditors ControlTemplate RadioButtonTemplate; - public BrushEditorDialog() + public BrushEditorDialog(IPropertyEditorDataProperty property) { InitializeComponent(); @@ -35,7 +39,7 @@ namespace ICSharpCode.WpfDesign.Designer.Controls.TypeEditors const int smallColorSquareSize = 12; // special brushes: - AddColorSquare(null, null, "null", bigColorSquareSize); + AddColorSquare(null, null, "null", bigColorSquareSize).IsChecked = true; AddColorSquare(Brushes.Black, null, "Black", bigColorSquareSize); AddColorSquare(Brushes.White, null, "White", bigColorSquareSize); AddColorSquare(Brushes.Transparent, null, "Transparent", bigColorSquareSize); @@ -49,13 +53,27 @@ namespace ICSharpCode.WpfDesign.Designer.Controls.TypeEditors if (!specialBrushes.Contains(brush)) AddColorSquare(brush, null, p.Name, smallColorSquareSize); } - canvas.Height = y + smallColorSquareSize; + + y += smallColorSquareSize; + + if (property != null) { + AddSeparatorLine(); + TextBoxEditor textBoxEditor = new TextBoxEditor(property); + textBoxEditor.Width = 100; + Canvas.SetTop(textBoxEditor, y); + canvas.Children.Add(textBoxEditor); + textBoxEditor.ValueSaved += delegate { + this.SelectedBrush = textBoxEditor.Property.Value as Brush; + }; + y += 21; + } + canvas.Height = y; } int x = 0; int y = 0; - void AddColorSquare(Brush brush, UIElement content, string tooltip, int size) + RadioButton AddColorSquare(Brush brush, UIElement content, string tooltip, int size) { RadioButton radioButton = new RadioButton { Background = brush, @@ -82,6 +100,7 @@ namespace ICSharpCode.WpfDesign.Designer.Controls.TypeEditors x = 0; y += size; } + return radioButton; } void AddSeparatorLine() @@ -94,7 +113,6 @@ namespace ICSharpCode.WpfDesign.Designer.Controls.TypeEditors Y1 = 0.5, Y2 = 0.5 }; - Canvas.SetLeft(line, 0); Canvas.SetTop(line, y + 1); canvas.Children.Add(line); y += 3; @@ -110,7 +128,7 @@ namespace ICSharpCode.WpfDesign.Designer.Controls.TypeEditors if (selectedBrush != value) { selectedBrush = value; foreach (RadioButton btn in canvas.Children.OfType()) { - btn.IsChecked = btn.Background == value; + btn.IsChecked = BrushEquals(btn.Background, value); } if (SelectedBrushChanged != null) { @@ -120,12 +138,47 @@ namespace ICSharpCode.WpfDesign.Designer.Controls.TypeEditors } } + bool BrushEquals(Brush b1, Brush b2) + { + if (b1 == b2) + return true; + SolidColorBrush scb1 = b1 as SolidColorBrush; + SolidColorBrush scb2 = b2 as SolidColorBrush; + if (scb1 == null || scb2 == null) + return false; + return scb1.Color == scb2.Color; + } + public event EventHandler SelectedBrushChanged; protected override void OnDeactivated(EventArgs e) { base.OnDeactivated(e); - Close(); + CloseIfNotActive(null, null); + } + + Window activeWindow; + + void CloseIfNotActive(object sender, EventArgs e) + { + if (activeWindow != null) { + activeWindow.Deactivated -= CloseIfNotActive; + activeWindow = null; + } + Dispatcher.BeginInvoke(DispatcherPriority.Normal, new Action( + delegate { + if (IsActive) + return; + foreach (Window child in OwnedWindows) { + Debug.WriteLine(child + " isActive=" + child.IsActive); + if (child.IsActive) { + activeWindow = child; + child.Deactivated += CloseIfNotActive; + return; + } + } + Close(); + })); } } } \ No newline at end of file diff --git a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/DesignSurface.cs b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/DesignSurface.cs index 3ff4cb9eb0..e539473cc9 100644 --- a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/DesignSurface.cs +++ b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/DesignSurface.cs @@ -8,6 +8,7 @@ using System; using System.Collections.Generic; using System.Diagnostics; +using System.Linq; using System.Windows; using System.Windows.Controls; using System.Windows.Input; @@ -88,7 +89,7 @@ namespace ICSharpCode.WpfDesign.Designer void OnUndoExecuted(object sender, ExecutedRoutedEventArgs e) { UndoService undoService = GetService(); - IUndoAction action = Func.First(undoService.UndoActions); + IUndoAction action = undoService.UndoActions.First(); Debug.WriteLine("Undo " + action.Title); undoService.Undo(); _designContext.Services.Selection.SetSelectedComponents(GetLiveElements(action.AffectedElements)); @@ -103,7 +104,7 @@ namespace ICSharpCode.WpfDesign.Designer void OnRedoExecuted(object sender, ExecutedRoutedEventArgs e) { UndoService undoService = GetService(); - IUndoAction action = Func.First(undoService.RedoActions); + IUndoAction action = undoService.RedoActions.First(); Debug.WriteLine("Redo " + action.Title); undoService.Redo(); _designContext.Services.Selection.SetSelectedComponents(GetLiveElements(action.AffectedElements)); diff --git a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/PanelInstanceFactory.cs b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/PanelInstanceFactory.cs index 3b5037133d..7ab77750f3 100644 --- a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/PanelInstanceFactory.cs +++ b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/PanelInstanceFactory.cs @@ -7,6 +7,7 @@ using System; using System.ComponentModel; +using System.Linq; using System.Windows.Media; using System.Windows.Controls; using ICSharpCode.WpfDesign.Extensions; @@ -92,7 +93,7 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions PropertyDescriptor property = properties[_parent._propertyName]; if (property != null) { if ((properties as System.Collections.IDictionary).IsReadOnly) { - properties = new PropertyDescriptorCollection(Func.ToArray(properties)); + properties = new PropertyDescriptorCollection(properties.Cast().ToArray()); } properties.Remove(property); properties.Add(new ShadowPropertyDescriptor(_parent, property)); diff --git a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Func.cs b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Func.cs deleted file mode 100644 index a9af3278a7..0000000000 --- a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Func.cs +++ /dev/null @@ -1,56 +0,0 @@ -// -// -// -// -// $Revision$ -// - -using System; -using System.ComponentModel; -using System.Collections.Generic; - -namespace ICSharpCode.WpfDesign.Designer -{ - delegate void Action(); - - // Static helpers that should become extension methods in the future - static class Func - { - public static T[] ToArray(ICollection collection) - { - T[] arr = new T[collection.Count]; - collection.CopyTo(arr, 0); - return arr; - } - - public static PropertyDescriptor[] ToArray(PropertyDescriptorCollection collection) - { - PropertyDescriptor[] arr = new PropertyDescriptor[collection.Count]; - collection.CopyTo(arr, 0); - return arr; - } - - /// - /// Returns a sorted copy of the collection. - /// - public static ICollection Sort(ICollection collection, Comparison comparison) - { - T[] arr = ToArray(collection); - Array.Sort(arr, comparison); - return arr; - } - - /// - /// Returns the first element from . - /// - public static T First(IEnumerable input) - { - if (input == null) - throw new ArgumentNullException("input"); - foreach (T item in input) { - return item; - } - throw new ArgumentException("input must not be an empty collection", "input"); - } - } -} diff --git a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/ModelTools.cs b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/ModelTools.cs index 83f782206e..a5253452f0 100644 --- a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/ModelTools.cs +++ b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/ModelTools.cs @@ -8,6 +8,7 @@ using System; using System.Collections.Generic; using System.Windows; +using System.Linq; namespace ICSharpCode.WpfDesign.Designer { @@ -74,10 +75,10 @@ namespace ICSharpCode.WpfDesign.Designer /// public static void DeleteComponents(ICollection items) { - DesignItem parent = Func.First(items).Parent; + DesignItem parent = items.First().Parent; PlacementOperation operation = PlacementOperation.Start(items, PlacementType.Delete); try { - ISelectionService selectionService = Func.First(items).Services.Selection; + ISelectionService selectionService = items.First().Services.Selection; selectionService.SetSelectedComponents(items, SelectionTypes.Remove); // if the selection is empty after deleting some components, select the parent of the deleted component if (selectionService.SelectionCount == 0 && !items.Contains(parent)) { diff --git a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/WpfDesign.Designer.csproj b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/WpfDesign.Designer.csproj index aa3afe2332..54a5c0a805 100644 --- a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/WpfDesign.Designer.csproj +++ b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/WpfDesign.Designer.csproj @@ -98,7 +98,6 @@ - diff --git a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/Extensions/ExtensionManager.cs b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/Extensions/ExtensionManager.cs index 072f683162..23e7c70dc7 100644 --- a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/Extensions/ExtensionManager.cs +++ b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/Extensions/ExtensionManager.cs @@ -8,6 +8,7 @@ using System; using System.Diagnostics; using System.Collections.Generic; +using System.Linq; using System.Reflection; namespace ICSharpCode.WpfDesign.Extensions @@ -127,7 +128,7 @@ namespace ICSharpCode.WpfDesign.Extensions foreach (ExtensionEntry entry in GetExtensionEntries(item)) { servers.Add(entry.Server); } - return Func.ToArray(servers); + return servers.ToArray(); } internal IEnumerable CreateExtensions(ExtensionServer server, DesignItem item) diff --git a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/Func.cs b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/Func.cs deleted file mode 100644 index 38cb781f09..0000000000 --- a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/Func.cs +++ /dev/null @@ -1,76 +0,0 @@ -// -// -// -// -// $Revision$ -// - -using System; -using System.Collections.Generic; - -namespace ICSharpCode.WpfDesign -{ - // Static helpers that should become extension methods in the future - static class Func - { - public static T[] ToArray(ICollection collection) where T : class - { - T[] arr = new T[collection.Count]; - collection.CopyTo(arr, 0); - return arr; - } - - /// - /// Outputs distinct elements only, filtering all duplicates. - /// - public static IEnumerable Distinct(IEnumerable input) where T : class - { - // store elements already seen - HashSet elements = new HashSet(); - - foreach (T element in input) { - if (elements.Add(element)) { - yield return element; - } - } - } - - /// - /// Returns the first element from . - /// - public static T First(IEnumerable input) - { - if (input == null) - throw new ArgumentNullException("input"); - foreach (T item in input) { - return item; - } - throw new ArgumentException("input must not be an empty collection", "input"); - } - - /// - /// Skips the first items in input and returns the rest. - /// - public static IEnumerable Skip(IEnumerable input, long skipCount) - { - if (input == null) - throw new ArgumentNullException("input"); - if (skipCount < 0) - throw new ArgumentOutOfRangeException("skipCount", skipCount, "skipCount must be non-negative."); - using (IEnumerator enumerator = input.GetEnumerator()) { - if (skipCount != 0) { - long i = 0; - while (enumerator.MoveNext()) { - // skip item - if (++i == skipCount) - break; - } - if (i != skipCount) yield break; // MoveNext returned false, don't call it again - } - while (enumerator.MoveNext()) { - yield return enumerator.Current; - } - } - } - } -} diff --git a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/PlacementOperation.cs b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/PlacementOperation.cs index 9825b23abb..3d23803894 100644 --- a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/PlacementOperation.cs +++ b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/PlacementOperation.cs @@ -8,6 +8,7 @@ using System; using System.Collections.Generic; using System.Collections.ObjectModel; +using System.Linq; using System.Diagnostics; using System.Windows; using System.Windows.Input; @@ -145,7 +146,7 @@ namespace ICSharpCode.WpfDesign throw new ArgumentNullException("placedItems"); if (type == null) throw new ArgumentNullException("type"); - DesignItem[] items = Func.ToArray(placedItems); + DesignItem[] items = placedItems.ToArray(); if (items.Length == 0) throw new ArgumentException("placedItems.Length must be > 0"); @@ -190,15 +191,15 @@ namespace ICSharpCode.WpfDesign throw new ArgumentNullException("items"); if (items.Count == 0) return null; - DesignItem parent = Func.First(items).Parent; - foreach (DesignItem item in Func.Skip(items, 1)) { + DesignItem parent = items.First().Parent; + foreach (DesignItem item in items.Skip(1)) { if (item.Parent != parent) return null; } if (parent != null) return parent.GetBehavior(); else if (items.Count == 1) - return Func.First(items).GetBehavior(); + return items.First().GetBehavior(); else return null; } @@ -228,7 +229,7 @@ namespace ICSharpCode.WpfDesign if (placedItems.Count != positions.Count) throw new ArgumentException("positions.Count must be = placedItems.Count"); - DesignItem[] items = Func.ToArray(placedItems); + DesignItem[] items = placedItems.ToArray(); PlacementOperation op = new PlacementOperation(items, type); try { diff --git a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/PropertyEditor/DesignItemDataSource.cs b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/PropertyEditor/DesignItemDataSource.cs index c6adae26e2..6d44f4e605 100644 --- a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/PropertyEditor/DesignItemDataSource.cs +++ b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/PropertyEditor/DesignItemDataSource.cs @@ -6,6 +6,7 @@ // using System; +using System.Linq; using System.Collections.Generic; using System.ComponentModel; using System.Diagnostics; @@ -95,7 +96,7 @@ namespace ICSharpCode.WpfDesign.PropertyEditor } designItemProperties.AddRange(item.Properties); - foreach (DesignItemProperty p in Func.Distinct(designItemProperties)) { + foreach (DesignItemProperty p in designItemProperties.Distinct()) { if (p.IsEvent) { events.Add(new DesignItemDataEvent(this, p)); } else { diff --git a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/PropertyEditor/MultipleSelectionDataSource.cs b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/PropertyEditor/MultipleSelectionDataSource.cs index 504224f721..97b9faa55d 100644 --- a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/PropertyEditor/MultipleSelectionDataSource.cs +++ b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/PropertyEditor/MultipleSelectionDataSource.cs @@ -7,6 +7,7 @@ using System; using System.Collections.Generic; +using System.Linq; using System.Windows.Media; namespace ICSharpCode.WpfDesign.PropertyEditor @@ -53,7 +54,7 @@ namespace ICSharpCode.WpfDesign.PropertyEditor this.services = services; if (sources == null) throw new ArgumentNullException("sources"); - data = Func.ToArray(sources); + data = sources.ToArray(); if (data.Length < 2) throw new ArgumentException("The collection must have at least 2 items!"); diff --git a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/PropertyEditor/TextBoxEditor.cs b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/PropertyEditor/TextBoxEditor.cs index 5266608dc9..06ef0b02c0 100644 --- a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/PropertyEditor/TextBoxEditor.cs +++ b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/PropertyEditor/TextBoxEditor.cs @@ -28,6 +28,13 @@ namespace ICSharpCode.WpfDesign.PropertyEditor bool isDirty; bool hasError; + /// + /// The property edited by the TextBoxEditor. + /// + public IPropertyEditorDataProperty Property { + get { return property; } + } + /// /// Creates a new TextBoxEditor instance. /// @@ -70,8 +77,15 @@ namespace ICSharpCode.WpfDesign.PropertyEditor hasError = true; throw; } + if (ValueSaved != null) + ValueSaved(this, EventArgs.Empty); } + /// + /// Raised when the user changes the property value using this text box. + /// + public event EventHandler ValueSaved; + static UIElement DescribeError(Exception ex) { return new TextBlock(new Run(ex.Message)); diff --git a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/WpfDesign.csproj b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/WpfDesign.csproj index c076e540d9..b822859a57 100644 --- a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/WpfDesign.csproj +++ b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/WpfDesign.csproj @@ -1,4 +1,4 @@ - + {66A378A1-E9F4-4AD5-8946-D0EC06C2902F} Debug @@ -18,6 +18,7 @@ ..\..\..\..\..\..\AddIns\AddIns\DisplayBindings\WpfDesign\ False -Microsoft.Globalization#CA1303 + v3.5 true @@ -48,6 +49,9 @@ False + + 3.5 + False @@ -85,7 +89,6 @@ -