2010-06-22 2 views
2

C# (.Net 2.0) 프로젝트에서 나는 propertygrid를 사용합니다. 이 propertygrid는 PHP 백엔드에서 가져온 객체를 SOAP을 통해 표시합니다. 일부 객체는 빈 문자열의 의미가 NULL 인 문자열의 의미와 다른 경우 문자열 속성을 포함합니다. 는 SOAP 호출에 의해 반환 된 객체의 예는 다음과 같을 수 있습니다 C# Propertygrid 속성 nullable

SomeObject { 
    PropertyA = "Foo" 
    PropertyB = "Bar" 
    PropertyC = Null 
} 

는만큼 내가 PropertyGrid가에 PropertyC을 "접촉"하지 않는 한, PropertyC의 값은 null로 유지됩니다. 값으로 "foobar"를 입력하고 PropertyC에 대한 propertygrid의 텍스트를 지우면 값은 빈 문자열과 같습니다. 이것은 나에 의하여 모두 잘이다; 사용자는 빈 문자열을 "입력"할 수 있어야합니다. 그러나 사용자가 "null"값을 지정할 수 있기를 바랍니다.

내가 상상하는 방식은 사용자가 속성의 값을 마우스 오른쪽 버튼으로 클릭 할 수 있으며 값을 '값 지우기'옵션을 사용하여 상황에 맞는 메뉴가 Null로 팝업된다는 것입니다.

중요 : 나는 이 값이 null 할 필요가 지정 문자열 "널 (null)"또는 "Magix123"처럼 "마법 값을"사용하지 않습니다. 물론 백엔드는 이러한 값을 해석하고 실제 null을 저장할 수 있지만이 "솔루션"은 평범하지 않은 것 외에 "Magic 값"을 처리하는 곳곳에서 많은 코드를 변경해야하므로 필요하지 않습니다.

이상적으로 PropertyGrid는 null 값을 ("회색") ""로 표시하므로 사용자는 빈 문자열과 Null 값의 차이를 볼 수 있습니다.

누구나 이런 상황을 처리하는 방법에 대한 아이디어가 있습니까? (.Net 2.0!) PropertyGrid에서 이런 종류의 작업을 수행 할 수 있습니까? 그러면 어떻게해야할까요? PropertyGrid에서 파생 된 내 자신의 usercontrol을 만들 필요가 있습니까? 아니면 PropertyGrid에 놓친 일부 기능이 있습니까?

답변

2

을 기본값으로 null으로 속성에 추가하면 상황에 맞는 메뉴에서 Reset 명령을 사용할 수 있습니다. 추가 사용자 정의의 경우 EditorAttribute을 추가하고 사용자 정의 UITypeEditor을 작성해야합니다.

+0

당신은 나를 놀 리고있어. 간단하지? Jeeeeeez ... LOL 나는 그것을 조사하고 알려주겠다. 감사! – RobIII

+0

적어도 이론적으로는 그렇게 쉬워야합니다. 많은 기능과 마법이 많은 컨트롤에 통합되어 있습니다. –

+0

Hmmm, [DefaultValue (null)]을 Reference.cs 파일의 속성에 추가했지만 "재설정"명령을 사용할 수 없습니다. 어쩌면 여기서 뭔가 잘못하고있는 것일 수 있습니다. 나는 그것에 대해 연구 중입니다 ... 어떤 도움이나 조언도 환영합니다. 또한 웹 참조를 업데이트 할 때이 파일을 항상 덮어 쓰 (재생성)하기 때문에 References.cs가 아닌 다른 위치에서 이러한 변경 사항을 적용하는 방법을 알아야 할 것입니다. 나는 Partial 클래스가 갈 길이라고 생각하니? – RobIII