0
我想在PropertyGrid中實現自動完成字符串字段,可以將其設置爲自定義值。WinForms PropertyGrid:動態StandardValuesCollection變化
這裏是我的字符串轉換
public class EntityNameAutocompleteConverter : StringConverter
{
public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
{
return true;
}
public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
{
return false;
}
public override StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
{
return new StandardValuesCollection(Globals.EntityCache.Select(e => e.Name).ToList());
}
}
,我把它作爲類型轉換器爲要編輯的字符串屬性。
問題是可能有很多標準值。所以我想通過輸入過濾它們,例如如果我輸入了「Foo」,我只會看到字符串,從下拉菜單中的「Foo」開始。
這有可能以任何方式?也許有可能從上下文或其他方式獲得財產的中間價值?
謝謝你,效果很好。實際上,當您按下下拉按鈕時,文本框會失去焦點,因此當前編輯值將保存在實例中。 – shtaff
是的,如果你需要自定義行爲,你必須編寫一個自定義的UITypeEditor,像這樣:http://stackoverflow.com/questions/4305033/property-grid-create-new-instance-on-a-property –