class Object
{
Vector2 positon;
}
이 위치는 PROPERT 그리드에서 편집 할
, 나는 browasable하지이 설정 할 수있을 것입니다 방법/읽기 전용 클래스를 모두 말해 PropertyGrid가에서 읽기 전용 객체에서 상속받은 클래스에서 나는 [Browsable(false)]
과 [ReadOnly(true)]
태그를 알고 있지만,이 태그는 모든 객체에 대해 설정합니다. 원하지 않습니다.
class Object
{
Vector2 positon;
}
이 위치는 PROPERT 그리드에서 편집 할
, 나는 browasable하지이 설정 할 수있을 것입니다 방법/읽기 전용 클래스를 모두 말해 PropertyGrid가에서 읽기 전용 객체에서 상속받은 클래스에서 나는 [Browsable(false)]
과 [ReadOnly(true)]
태그를 알고 있지만,이 태그는 모든 객체에 대해 설정합니다. 원하지 않습니다.
위치 속성을 virtual
으로 선언하고 파생 형식에서 재정의하십시오. 런타임시에 그 일을
public class Class1
{
public virtual string Lol { get; set; }
}
class Class1Impl1 : Class1
{
[Browsable(false)]
[ReadOnly(false)]
public override string Lol
{
get
{
return base.Lol;
}
set
{
base.Lol = value;
}
}
}
class Class1Impl2 : Class1
{
[Browsable(true)]
[ReadOnly(true)]
public override string Lol
{
get
{
return base.Lol;
}
set
{
base.Lol = value;
}
}
}
다른 질문, IsBrowsable 및 isReadOnly의 읽기 전용 속성입니다. 런타임에이 속성의 인스턴스를 변경할 가능성이 있는지 알고 싶으면 which I think is not.
런타임시 browseable 속성을 변경할 수 없다고 생각합니다.),하지만 당신은 당신의 조건을 검사하고 속성의 쓰기를 허용/거부하는 방법을 가질 수 있습니다. 그게 충분하다면, 내가 원한다면 무언가를 비웃는 것이 기쁠거야.
편집 : 나는 더 우아한 방법이 될 수 있다면 난 그냥 궁금 해서요, 그런 일을해야 할 수도 있습니다 생각
class SomeClass
{
private Object _foo;
private Object _bar;
public Object Foo
{
get
{
return _foo;
}
set
{
if (_bar != _foo) // replace with your test
{
_foo = value;
}
}
}
}
이것은 분명히 내가 본 것일 가능성이 높기 때문에 실제로 볼 수있는 것이 될 것입니다. 실제 속성을 확인하는 것도 좋은 것입니다. – Questioning
@Dino 편집이 완료되었습니다. –
. 이것을 객체마다 설정할 수 있습니까? 두 개의 객체가 있고 그 중 하나의 객체를 편집 가능한 위치로 만들고 다른 객체를 편집 할 수 없도록하고 싶습니다. – Questioning
내 예제에서 볼 수 있듯이 Class1Impl1은 읽기 전용이 아니지만 Class1Impl1은 읽기 전용이 아닙니다. 둘 다 Class1에서 상속하므로 네가 할 수 있습니다. – JoanComasFdz
미안하지만 그건 내가 의미하는 바가 아니야. 내가 말하고 싶은 건; 특정 값을 가진 객체에 대해 런타임에 읽기 전용/찾아보기 값을 변경할 수 있습니다. – Questioning