diff --git a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/PropertyEditor/EditorManager.cs b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/PropertyEditor/EditorManager.cs index a686c2ce67..dcd8bec79e 100644 --- a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/PropertyEditor/EditorManager.cs +++ b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/PropertyEditor/EditorManager.cs @@ -63,7 +63,7 @@ namespace ICSharpCode.WpfDesign.PropertyEditor { Type returnType = property.ReturnType; if (returnType.IsEnum) { - return typeof(EnumEditor); + return typeof(StandardValuesComboBoxEditor); } else if (returnType == typeof(bool)) { return typeof(BooleanEditor); } else { diff --git a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/PropertyEditor/EnumEditor.cs b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/PropertyEditor/StandardValuesComboBoxEditor.cs similarity index 65% rename from src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/PropertyEditor/EnumEditor.cs rename to src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/PropertyEditor/StandardValuesComboBoxEditor.cs index d974084722..8a10564c6b 100644 --- a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/PropertyEditor/EnumEditor.cs +++ b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/PropertyEditor/StandardValuesComboBoxEditor.cs @@ -18,14 +18,17 @@ namespace ICSharpCode.WpfDesign.PropertyEditor /// /// Type editor used to edit enum properties. /// - sealed class EnumEditor : ComboBox + sealed class StandardValuesComboBoxEditor : ComboBox { /// /// Creates a new EnumEditor instance. /// - public EnumEditor(IPropertyEditorDataProperty property) + public StandardValuesComboBoxEditor(IPropertyEditorDataProperty property) { - + foreach (object o in property.TypeConverter.GetStandardValues()) { + this.Items.Add(o); + } + SetBinding(ComboBox.SelectedItemProperty, PropertyEditorBindingHelper.CreateBinding(this, property)); } } } diff --git a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/PropertyEditor/TextBoxEditor.cs b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/PropertyEditor/TextBoxEditor.cs index 48193170d1..974bb182d3 100644 --- a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/PropertyEditor/TextBoxEditor.cs +++ b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/PropertyEditor/TextBoxEditor.cs @@ -13,6 +13,7 @@ using System.Windows.Data; using System.Windows.Media; using System.Windows.Controls; using System.Windows.Documents; +using System.Windows.Input; namespace ICSharpCode.WpfDesign.PropertyEditor { @@ -21,6 +22,8 @@ namespace ICSharpCode.WpfDesign.PropertyEditor /// sealed class TextBoxEditor : TextBox { + BindingExpressionBase bindingResult; + /// /// Creates a new TextBoxEditor instance. /// @@ -28,7 +31,20 @@ namespace ICSharpCode.WpfDesign.PropertyEditor { Binding b = PropertyEditorBindingHelper.CreateBinding(this, property); b.Converter = new ToStringConverter(property.TypeConverter); - SetBinding(TextProperty, b); + bindingResult = SetBinding(TextProperty, b); + } + + protected override void OnKeyDown(KeyEventArgs e) + { + base.OnKeyDown(e); + if (!e.Handled && e.Key == Key.Enter) { + string oldText = this.Text; + bindingResult.UpdateSource(); + if (this.Text != oldText) { + this.SelectAll(); + } + e.Handled = true; + } } sealed class ToStringConverter : IValueConverter diff --git a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/WpfDesign.csproj b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/WpfDesign.csproj index a6ac387aae..4442b43b5a 100644 --- a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/WpfDesign.csproj +++ b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/WpfDesign.csproj @@ -80,7 +80,7 @@ - +