我遇到了propertyGrid的问题。PropertyGrid缺少textChanged事件
我有一个映射到PropertyGrid的 我有一个属性“姓名”一类叫做DummySettings
当输入PropertyGrid中的EG的东西的名称属性我想提出一个事件,“框TextChanged”
尽管实施了INotifyPropertyChanged事件并将其提高,并且尽管在PropertyGrid 上挂钩了各种事件,但当文本更改时,没有任何事件会触发。
我是否缺少明显的?
EDITED
的伪代码
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();
}
“我缺少明显的?” - 我们如何知道这个没有代码来检查?! – Brian 2013-02-13 21:49:38
嗨,添加代码给你一个想法。原因是我没有添加代码,因为我认为有人会说“哦,你需要钩住那个事件”。PropertyGrid似乎没有一个textChanged发射相同的方式文本框在一个属性上做。 – user9969 2013-02-13 23:09:34