2012-11-01 2 views
0

정수를 비롯한 다양한 값 유형이있는 속성 표가 있습니다. int 속성 중 일부는 DefaultValueAttribute를 가지며 기본값을 지정합니다. -1.Visual Studio 속성 표 : Int 속성에 빈 문자열 허용

사용자가 빈 문자열을 입력하면 Visual Studio에서 "속성 값이 유효하지 않습니다." '를 (를) Int32로 변환 할 수 없습니다.'라는 오류 메시지가 표시됩니다. 빈 문자열을 기본값으로 되 돌리는 것으로 해석 할 여지가 있습니까?

사용자 정의 PropertyDescriptor가 구현되었지만 후에 SetValue() 메소드가 으로 변경되었습니다. VS가 오브젝트 값 유형으로 변환합니다.

+1

이것은 추측 일뿐입니다. 시도하지는 않았지만 조사하지 않았습니다. 'int?'속성을 만들어보십시오. – Bobson

+0

고마워, 그게 아마 작동하지만, 나는 일반 (nullable이 아닌) int로 속성이 필요합니다 ... –

답변

1

Int32Converter의 파생 클래스를 만들고이를 속성에 연결하십시오. ConvertFrom 메서드를 재정 의하여 원하는 동작을 삽입하십시오. 최적으로 PropertyDescriptor에 설정된 DefaultAttribute를 사용하여 재사용 가능하게 만듭니다.

BaseNumberConverter.ConvertFrom의 수행 방법을 보려면 반사경 도구를 사용하십시오.

+0

정확히 내가 뭘 필요했는지 - 고마워! –

+0

안녕하세요 @ 니콜라스, 위의 대답은 이해하기 조금 어렵습니다, 당신은 내가 볼 수있는 샘플 코드가 있으십니까? –

관련 문제