0

基本的に配電ネットワークの単線図デザイナーになりたいMVVM WPFアプリケーションがあります。

変圧器、サーキット ブレーカー、ライン、およびケーブルを含む必要があるキャンバスがあります。

私の大きな問題はデザインです...どうすれば始められますか?

すべての要素の基本クラスである IDesignerItemViewModel の ObservableCollection を含む DesignerView、DesignerViewModel について考えます。しかし、この場合、キャンバスのコンテンツをコレクションにバインドするために ItemsControl を使用する必要がありますが、長所は、要素ごとにユーザーコントロールを作成する必要がないことですが、ほとんどの問題は DataTemplate で解決します (私はそう思います)。 . 各要素ビューモデルは、論理ツリーを維持するリポジトリに永続化されたモデルへのリンクを維持します。

進め方についてのヒント、私は多くのDiagramCanvasの例を見てきましたが、それらはすべて単純な長方形のような単純なアイテムを使用しています...

4

2 に答える 2

0

マウロ、

ItemsControl の ItemsPanel をキャンバスにして、DataTemplate の UI 要素の座標を ViewModel のプロパティにバインドするのが良い方法です。

私には思えますが、DataTemplate のコンテンツは Canvas ではなく ItemPresenter 内に配置されるため、これは機能しない可能性があります。したがって、要素のタイプを定義するプロパティに基づいてトリガーのテンプレートを切り替えることで、任意の要素を視覚化するコントロールを作成できるかもしれません。

次に、Canvas の Children をこれらのコントロールのコレクションにバインドするか、コード ビハインドでプロシージャルに Canvas.Children コレクションを設定します。

于 2009-04-23T18:51:19.307 に答える
0

私は似たようなことをしようとしています。CANVASとしてレイアウトするItemscontrolがあります。私のアイテムは、タイプ Usercontrol からのプロパティ PayLoad を持つ ShapeItemViewModels です。私のビューには、プロパティ ペイロードにバインドされた Border と ContentPresenter があります。次に、必要に応じてペイロードを挿入します。これにより、アイテムを好きなように組み立てることができます...ただし、1つの問題があります...それは接続/関係です ここで私のスレッドを参照してください:

Silverlight MVVM での作図 - 図形の接続

于 2010-03-29T11:08:48.517 に答える