我遇到了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