1

VS、Visio、ペイントのように、コントロールをダイアグラム作成面にドラッグアンドドロップするダイアグラム作成ツールを開発しています。

表面にドロップされた各コントロール/要素は、右クリックするとコンテキストメニューの「プロパティ」を表示します。「プロパティ」ダイアログには、各要素/コントロールに関連するデータのセットが表示されます。

私の質問は、表面の各要素/コントロールに添付された、この非UIデータをどのように保存/ロードするのが最善かということです。

たとえば、デザインモードで要素LED1、ブレーカー1、コネクタ1を作成
します。それぞれについて、異なるデータセットを保存します。

ストレージロジックは次のようになります

   for all elements on diagram
    1. input element id,element type.
    2. store data for that element ID.  

私が作成したダイアグラムをアプリケーションとして実行する場合、ローダーによってストレージからこれらの要素ごとに適切なデータを取得する必要があります。

ローダーロジックは次のようになります

ダイアグラム上のすべての要素

  1. 要素IDと要素タイプを検出する
  2. 上記のIDのデータを取得します。

リソースのxmlを考えました。しかし、私のマネージャーは熱心ではなかったようです。

私は、最も経験豊富で熟練したwpf開発者がこれについてどのように取り組むのか疑問に思いました。

4

3 に答える 3

1

私はあなたの質問を完全には理解していないかもしれません。しかし、私たちはビジネス データをカスタム バイナリ形式で保存します。これは基本的に、ビジネス データのツリーのプロパティ値をデータベースにダンプしただけです。要件によっては、ファイル形式の変更 (異なるバージョン) を確実に処理し、相互参照を適切に処理する必要があります。各オブジェクトは個別にダンプされ、2 回目のパスで相互参照が確実に解決されます。

それに加えて、私はそれをできるだけ簡単にします:

ダイアグラム要素の各タイプのモデル クラス。それ自体はビジネス関連データのみを格納します (ダイアグラム アプリケーションでの位置とサイズをビジネス データと見なします)。これらのモデルはシリアライズ可能にすることができます。これらのモデルを操作するためのマネージャー クラス。元に戻す、やり直し、モデルの作成などを表示します。また、これらのモデルをラップし、コマンド、UI 情報 (選択されている、展開されているなど) などの追加情報を格納するモデルを表示します。

ビューについては、仮想化キャンバスを使用してカスタム ItemsControl を作成することを強くお勧めします。

于 2013-03-14T12:20:33.517 に答える
0

スケールにもよると思います。何千ものオブジェクトがあり、その状態を保存/ロードする必要がある場合は、データを保存するデータベースをセットアップすることをお勧めします。オブジェクトが数十個しかない場合は、XmlSerialization が最も明白な選択肢です。

于 2013-03-14T12:19:02.640 に答える
0

XML が悪い方法だとは思いません。実際には、Office のサブ要素が格納される方法です。Microsoft のXPS Packaging format と API をご覧ください。( MSDN )

于 2013-03-14T12:21:07.757 に答える