2012-05-08 12 views
0

mvvm-lightには、2つのプロパティ作成スニペットがあります。mvvminpc: 'normal'プロパティを作成します。 mvvmpropaを使用して添付プロパティ(別名依存プロパティ)を作成します。私は、使用するものを選択するときに考慮すべき点についてのガイダンスがあるかどうかを知りたいだけです。mvvm-light:ノーマルプロパティまたは依存性プロパティ

答えて

1

依存関係プロパティは、UIコンポーネント(コントロールなど)を作成するときに推奨されます。バインディングのパフォーマンスが向上します。

ビジネスオブジェクトがある場合、またはUIコントロールを持たない/作成していない場合、通常のプロパティが使用されます。

3

私はMVVMライトのこれらのプロパティトピックでもしばらく検索しています。以下は、MVVMのライトで提供されるプロパティスニペットの私の理解です。彼らは異なる目的のために、あなたが他のものを使用することは実際にはありません。

バインド可能なプロパティ - ビューが表示するデータを公開するために、バインド可能なプロパティがViewModelsに作成されます。

例には、従業員のコレクション、または選択した従業員情報を表示します。

依存性プロパティ - コードスニペットについては、特定のビューを参照してください。これらのプロパティは、一定の値に設定するか、のデータバインディングを使用して、ビューモデルデータのに従います。

例には次のものがあります。テキストブロックコントロールの「テキスト」プロパティは、依存関係プロパティです。 「高さ」および「幅」プロパティも依存プロパティです。

アタッチプロパティ - ユーザーコントロールのために特に使用されます。このプロパティは、親コントロールに追加されます。子コントロールは、これらのプロパティを使用して、親コントロール内で特定の方法で動作します。

例には、Dockpanel自体が使用していない「Dock」(接続プロパティー名)があります。内部に含まれる子によって使用されるので、子はDockPanel.Dock = "Top"のプロパティを設定できるようになります。サンプルコードで

<DockPanel> 
     <TextBlock Text="{Binding EmployeeName}" DockPanel.Dock="Top" /> 
     <Button Content="Click Here" DockPanel.Dock="Bottom" /> 
    </DockPanel> 

上述:

バインド可能プロパティはのviewmodelコードでパブリックプロパティであろうEmployeeName、です。

依存性プロパティは、テキストブロックのText = ""プロパティとボタンのContent = ""プロパティです。

添付プロパティは、テキストブロックとボタンで使用されるDockPanel.Dockプロパティですが、実際にはDockpanel自体によって公開されます。 Dockpanelには.Dockコードが含まれていないことに注意してください。

関連する問題