1

アプリケーションをゼロから作成しています (コアとアプリ、アプリは MVVM)。コアには、ブロックで構成される Test オブジェクトが含まれています。約30種類のブロックを取り揃えております。それらは複合パターンとして実装されます - 抽象ブロックと、それを継承するリーフ & 複合ブロックがあります。他のすべての種類のブロックは、リーフ ('print' ブロックなど) またはコンポジット ('for' ブロックなど) から継承します。
私の質問は、コアとアプリケーションの接続に関するものです。アプリケーションは、テストのツリーのような構造を提示する必要があります。このために、ブロックが持つパラメータとその表示方法 (1 つの文字列パラメータ、3 つの int、1 つの文字列と 1 つの int など、3 つの値のみを持つことができる) と、ブロックに子があるかどうかを認識している必要があります。 . 他の要件が後で発生する可能性があります。

API ですべての具象ブロックを公開し、それぞれをモデル内の独自のブロックにラップしてから、データ テンプレートを使用してさまざまなプロパティをフィールドにバインドするのが最も簡単なようです。問題は、コア内部をこのようにアプリケーションに公開したくないということです。

もう 1 つのオプションは、抽象ブロックのみを公開し、エンティティを API に追加することです。提示可能ブロックは、エンティティを保持し、そのパラメータの一般的な表現も保持します (たとえば、パラメータ オブジェクトのリスト、そのような各オブジェクトは必要な情報を保持します)。 )。この場合、アプリはブロックごとにそのようなリストを解析する必要があり、データ テンプレートの使用法については不明です。それは可能でしょうか?

2 つの提案に加えて、もちろん新しいアイデアについてのコメントをいただければ幸いです。
ありがとう。

4

0 に答える 0