DSL のコンパートメント形状でプロパティを選択する際に問題があります。私がやりたいことは次のとおりです。
1 つのコンパートメントに多くのプロパティを持つ 1 つのコンパートメント形状を持つ DSL があります。この各プロパティには、C# コードを保存するために使用されるテキスト フィールドがあります。このコードをコンパイルし、エラー タスクをエラー リストに追加します。エラー タスクの移動イベントのイベント ハンドラーを追加しました。このハンドラー内で、エラーの原因となっているコンパートメントシェイプのプロパティを選択したいと思います。私は多くのことを試みましたが、成功しませんでした。これは私の現在の選択ロジックです:
public void Select(Rule rule)
{
Library.Field ruleField = rule.Field as Library.Field;
var ruleFieldPresentation = PresentationViewsSubject.GetPresentation(ruleField as ModelElement).FirstOrDefault() as ShapeElement;
VSDiagramView activeDiagramView = Diagram.ActiveDiagramView as VSDiagramView;
if (activeDiagramView != null)
{
var docView = activeDiagramView.DocView;
activeDiagramView.Selection.Clear();
docView.CurrentDiagram.ActiveDiagramView.Selection.Set(new DiagramItem(ruleFieldPresentation));
}
}
問題は、コンパートメントシェイプのプロパティにプレゼンテーションビューがないようです。取得できないためです。
誰かがこの問題で私を助けることができれば、私は嬉しくてとても感謝しています.
よろしくマヌエル