我的propertyGrid出了点问题。
我有一个名为DummySettings的类,它映射到propertyGrid,我有一个属性"Name“
当在属性网格EG的Name属性中键入内容时,我想引发一个事件,即"TextChanged“
尽管实现了INotifyPropertyChanged事件并引发了它,尽管挂起了我能在propertyGrid上想到的各种事件,但当A文本发生变化时,这些事件都不会触发。
我是不是错过了显而易见的东西?
编辑过的
Psuedo代码
public class DummySettings : INotifyPropertyChanged
{
private string name;
[DisplayName("Name")]
public string Name
{
get { return name; }
set
{
if (name != value)
{
name = value;
OnPropertyChanged("Name");
}
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged(string propertyName)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName));
}
}
//UserControl
public partial class DummyControl : UserControl
{
private DummySettings settings;
///Constructor
public DummyControl()
{
InitializeComponent();
settings = new DummySettings();
propertyGrid1.SelectedObject = settings;
settings.PropertyChanged += OnDummyPropertyChanged;
//All the events I have hooked up but not firing when text is changed
private void OnDummyPropertyChanged(object sender, PropertyChangedEventArgs e)
{
btnToEnable.Enabled = HasName();
}
private void propertyGrid1_Leave(object sender, EventArgs e)
{
btnToEnable.Enabled = HasName();
}
private void propertyGrid1_Validating(object sender, CancelEventArgs e)
{
btnToEnable.Enabled = HasName();
}
private void propertyGrid1_SelectedObjectsChanged(object sender, EventArgs e)
{
btnToEnable.Enabled = HasName();
}
private void propertyGrid1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
btnToEnable.Enabled = HasName();
}
private bool HasName()
{
return settings.Name.IsNotNullOrEmpty();
}发布于 2013-02-14 05:54:44
您可以使用PropertyValueChanged事件在PropertyGrid中获得所选对象属性更改的通知。因此,当您将Name属性值从"Foo“更改为"Bar”时,将引发此事件:
void propertyGrid_PropertyValueChanged(object s, PropertyValueChangedEventArgs e)
{
// previous value is e.OldValue, "Foo"
// property name is e.ChangedItem.Label, "Name"
// new value is e.ChangedItem.Value, "Bar"
}https://stackoverflow.com/questions/14863737
复制相似问题