문제

사용의 차이점은 무엇입니까? PropertyDescriptor 그것은 값을 반환합니다 IsReadOnly() 방법 및 a와 관련된 방법 ReadOnlyAttribute?

도움이 되었습니까?

해결책

주된 차이점은 자신의 것을 제공하면 더 많은 제어를 포착 할 수 있다는 것입니다. PropertyDescriptor 구현 (비아 ICustomTypeDescriptor, TypeDescriptionProvider 또는 TypeConverter). 그런 다음 선택할 수 있습니다 소유하다 예를 들어 액세스 권한을 기준으로 작성 가능한 경우 논리.

그러나 그렇습니다. 기본 구현에 따라 세터가없는 속성 및 표시된 속성에 대해 읽기 전용을보고합니다. ReadOnlyAttribute.

다른 팁

반사판을 사용하여 볼 때 차이가 없습니다.

파생 클래스 중 하나 SimplePropertyDescriptor에는 다음 코드가 있습니다.


    public override bool IsReadOnly
    {
        get
        {
            return this.Attributes.Contains(ReadOnlyAttribute.Yes);
        }
    }

그냥 메모.

각 엔티티의 읽기 전용 상태를 개별적으로 제어하기 위해 응용 프로그램의 엔티티 객체에 대해 ICUSTOMTYPEDESCRIPTOR를 구현하는 데 하루를 보냈습니다.

따라서 각 PropertyDescriptor 구현은 그 출처에서 얻은 엔티티 객체에 대한 참조를 유지 했으므로 IsReadOnly 속성은 다음과 같습니다.

public override bool IsReadOnly
{
    get { return _owner.IsReadOnly;}
}

그러나 코드를 실행했을 때 BindingSource 구성 요소는 세트의 각 레코드에 대해 getProperties () 메소드의 ICUSTOMTYPEDESCRACTTOR에서 PropertyDescriptor 세트를 읽었지만 ISREADONLY의 값을 확인했을 때 첫 번째에서 얻은 속성 디스크립터 만 테스트했습니다. 기록.

완전한 시간 낭비 !!!!

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top