私のカスタム DSL ツールでは、削除できないノードが Explorer に必要です。それ以外は、通常のノードのようにしたいです。基本的に私が欲しいのは、DSL ExplorerのXml Serialization Behaviorのようなノードです:
Xml シリアライゼーション動作のコンテキスト メニューの図 http://img31.imageshack.us/img31/740/xmlserializerbehavior.png
Microsoft.VisualStudio.Modeling.Sdk.DslDefinition.dll アセンブリの XmlSerializationDefinitionSerializer クラスで Reflector を使用することで、これが DomainClass の単なる派生物であることを発見したので、(明らかに) 特別なことは何もありません。
ノードとして機能する DomainClass を定義しました。それを右クリックすると、必要に応じてサブノードを追加できます。削除メニューの選択を取り除くことはできません。
コンテキスト メニュー項目の図を削除 http://img705.imageshack.us/img705/9033/validators.png
考えられることは何でも試しました...プロパティセッターをプライベートに設定しました。それを回避し、多重度を1..1に設定しました。 「Validators」ノードがありません... DomainClass と、ルート モデルと Validators Domain Class の間の DomainRelationship の両方のすべてのプロパティを調べましたが、どれもこれに対処していないようです。また、DSL Explorer ウィンドウの Explorer Behavior ノードのすべてを調べました。私は完全に困惑しています。誰もこれを行う方法を知っていますか?