2008-09-22 4 views
1

속성 표를 'PropertyAdapter'객체 (적절한 태그가있는 관련 객체를 표시하는 객체 중 하나를 둘러싼 기본 래퍼)로로드했습니다.)속성 표 객체가 콤보 상자 선택에 실패했지만 콤보 상자를 스크롤하거나 두 번 클릭했을 때 OK

나는

다음과 같이 나는이 방법으로, 진수 속성 그리드 가능하고 정수 값을 제한 할 수로) 사용할 수있는 값의리스트를 반환하는 속성 중 하나 (데이터 유형에 TypeConverter를이
public override bool GetStandardValuesSupported(ITypeDescriptorContext context) 
{ 
    return true; 
} 

public override StandardValuesCollection GetStandardValues(ITypeDescriptorContext context) 
{ 
    return new StandardValuesCollection(new List<Constants.DataTypes>() { Constants.DataTypes.Decimal, Constants.DataTypes.Integer }); 
} 

이 속성은 속성 표에 원하는대로 표시되며 두 번 클릭하면 표시됩니다. 속성 표에있는 속성 필드는 Integer와 Decimal 사이를 행복하게 전환합니다. 비슷한 방법으로 마우스 휠을 사용하여 속성 필드의 콤보 상자에서 옵션을 스크롤 할 수 있습니다. 나는 그러나 콤보 상자와 같은 속성 필드를 사용하고 드롭 다운에서 값을 선택하면

, 나는 오류와 함께 표준 속성 그리드 오류 상자를 얻을 :

Object of type 'System.String' cannot be converted to type 'Pelion.PM3.Utils.Constants+DataTypes'.

내가 사용할 수있는 가정입니다 변환기는 유형 변환기에서이를 무시하고이를 DataTypes의 열거 형으로 변환하지만 드롭 다운에서 두 번 클릭하거나 '마우스 휠링'대신 드롭 다운에서 선택하면 왜 속성 격자가 실패합니까?

답변

3

콤보 상자 드롭 다운에서 선택한 경우 값은 문자열로 반환됩니다. 왜 그런지는 모르겠지만 전에 일어난 일을 보았습니다. 기본적으로 mousewheel을 두 번 클릭하거나 스크롤하면 값 컬렉션에서 값이 변경되고 드롭 다운에서 선택하는 것은 필드 값을 문자열로 편집하는 것과 같습니다. 그런 다음 값을 문자열에서 열거 형 값으로 변환합니다.