To reproduce: - Click on a property (with a dropdown editor for example) to start edit. - Move mouse over vertical center dividing line to get mouse to transition to resize pointer. - Move mouse to the right back over the combo box that has been activated for edit. - The mouse pointer will not transition back to the arrow, it will stay on the resize pointer.
Steps to reproduce: 1. Add a RadPropertyGrid to a form. 2. Set the SelectedObjects property to a array of one object that has a property decorated with the ReadOnly attribute. Run the project and you will see that the read only property is not displayed.
Steps to reproduce: 1. Create a custom type descriptor for an object that returns less properties than the default one. 2. Set this descriptor to the object 3. Set an object array containing two such objects to the SelectedObjects property of RadPropertyGrid 4. Run the project and you will see all properties of the object are shown disrespecting the custom type descriptor.
Currently RadPropertyGrid uses CurrentUICulture for localization, while it should use CurrentCulture.
Steps to reproduce: 1. Set a PasswordPropertyText(true) attribute to a string property of an object. 2. Set the object as selected of a property grid. 3. Open the password property for edit. Any other text property you try to edit will be handled as if it was password.
Currently when expanding an item in RadPropertyGrid the order of the sub items changes on every start.
To reproduce: - Create a property store and add some items to it. - Start the project and click an item. Workaround: - Add RadSortOrderAttribute to each item: for (int i = 0; i < propStore.Count; i++) { PropertyStoreItem item = propStore[i]; item.Attributes.Add(new RadSortOrderAttribute(i)); }
Extend the sorting functionality in order to support custom sort order.
More specifically the behavior when the combobox editor is double clicked it changes its current item to the next one.
When using a the following property store item: this.PropertyStore.Add(typeof(Image) , "Test Image" , null ); the user cannot select an image via the BrowseEditor.
Steps to reproduce. 1. Drag a RadPropertyGrid to a form. 2. Set the selected object to a button for example. 3. Set the System.Threading.Thread.CurrentThread.CurrentUICulture to bg-BG for example 4. Run the project and try to edit the Size property. You will see that it is displayed in the format X;Y, but you have to enter string in the X,Y format otherwise you get an exception.
When the spin editor is opened in the RadPropertyGrid the default min and max values should be the min and max values of the type of the property that is being edited.
Add the ability to handle collection items in the RadPropertyGrid.
FIX. RadPropertyGrid - setting the SelectedObject to something and then set it to a property store, does not remove the initial items Workaround: clear the items prior setting the property store: this.radPropertyGrid1.PropertyGridElement.PropertyTableElement.ListSource.Clear();
To reproduce: -add a RadPropertyGrid and use the following code: radPropertyGrid.SelectedObject = new MyPropertyGridAdapter(node); PropertyValueChanging += new PropertyGridItemValueChangingEventHandler(OnPropertyValueChanging); private void OnPropertyValueChanging(object sender, PropertyGridItemValueChangingEventArgs e) { var form = new CommentActionForm(); if (form.ShowDialog() == System.Windows.Forms.DialogResult.OK) { var item = e.Item as PropertyGridItem; var pd = item.PropertyDescriptor as MyPropertyDescriptor; if (pd != null) { // Perform value change (affects database). } } else { e.Cancel = true; } } Workaround:when ending edit mode with Enter key you may use the following approach: public Form1() { InitializeComponent(); this.radPropertyGrid1.SelectedObject = new MyObject(10204, "Sample name", "Some descripion"); this.radPropertyGrid1.EditorRequired += radPropertyGrid1_EditorRequired; } private void radPropertyGrid1_EditorRequired(object sender, PropertyGridEditorRequiredEventArgs e) { PropertyGridItem propertyItem = e.Item as PropertyGridItem; e.Editor = new MyEditor(propertyItem); } public class MyObject { public int ID { get; set; } public string Name { get; set; } public string Description { get; set; } public MyObject(int iD, string name, string description) { this.ID = iD; this.Name = name; this.Description = description; } } public class MyEditor : PropertyGridTextBoxEditor { public string InitialValue { get; set; } public PropertyGridItem PropertyItem { get; set; } public MyEditor(PropertyGridItem item) : base() { this.PropertyItem = item; } public override void BeginEdit() { InitialValue = this.TextBoxEditorElement.Text; base.BeginEdit(); } } public class MyPropertyGrid : RadPropertyGrid { protected override bool ProcessDialogKey(Keys keyData) { if (this.ActiveEditor != null && this.ActiveEditor is MyEditor && keyData == Keys.Enter) { MyEditor editor = ((MyEditor)this.ActiveEditor); PropertyGridItem property = editor.PropertyItem; string initialValue = editor.InitialValue; DialogResult ds = RadMessageBox.Show("Are you sure?", "Title", MessageBoxButtons.OKCancel, RadMessageIcon.Question); if (ds == System.Windows.Forms.DialogResult.Cancel) { property.Value = initialValue; return false; } } return base.ProcessDialogKey(keyData); } }
When a property has a TypeConverter which method GetStandardValuesExclusive returns false. Users should be able to enter additional values, other than the values returned by the GetStandardValues mehtod.
RadPropertyGrid should not invalidate the properties when the help bar is resized.
How to reproduce: check the attached screenshot Workaround: use the attached custom theme
The RadPropertyGrid implementation should be improved in a way that will allow users to override the methods that fire events like: OnEditorRequired, OnEditorInitialized, OnCustomGrouping etc. Resolution: 1. Inherit from PropertyGridTableElement and override the method you want. 2. Inherit from PropertyGridSplitElement and override the CreateTableElement() return your class from 1. 3. Inherit from PropertyGridElement and override the CreateSplitElement() return your class from 2. 4. Inherit from RadPropertyGrid and override the CreatePropertyGridElement() return your class from 3.