0

在 mvvm-light 中,它带有两个属性创建片段: mvvminpc 用于创建“普通”属性;和 mvvmpropa 创建附加属性(也称为依赖属性)。我只想知道在选择使用哪一个时是否有任何指导?

4

2 回答 2

3

我也一直在寻找 MVVM light 的这些属性主题。以下是我对 MVVM light 中提供的属性片段的理解。实际上没有任何情况下您会使用其中一种,因为它们用于不同的目的。

可绑定属性- 在您的 ViewModel 中创建可绑定属性以公开您的视图将显示的数据。

示例包括:显示员工集合或选定的员工信息。

依赖属性- 特定于代码片段的视图。这些属性可以设置为常量值或使用数据绑定进行更改,具体取决于视图模型数据。

示例包括: 文本块控件的“文本”属性是依赖属性。“高度”和“宽度”属性也是依赖属性。

附加属性- 也更具体地用于用户控件。此属性被添加到父控件。子控件使用这些属性在父控件中以某种方式运行。

示例包括:Dockpanel 有一个 Dockpanel 本身不使用的“Dock”(附加属性名称)。它被包含在其中的孩子使用,孩子们现在可以设置属性:DockPanel.Dock="Top"。

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

在上面的示例代码中:

绑定属性是 EmployeeName,它将是视图模型代码中的公共属性。

依赖属性是文本块的Text="" 属性和按钮的 Content="" 属性。

附加属性是文本块和按钮中使用的DockPanel.Dock 属性,但实际上是由 Dockpanel 本身公开的。请注意,Dockpanel 不包含任何 .Dock 代码,只有子级包含。

于 2013-05-16T01:19:24.410 回答
1

在创建 UI 组件(控件等)时建议使用依赖属性:它们具有更好的绑定时间性能。

如果您有业务对象或没有/创建 UI 控件,则使用普通属性。

于 2012-06-06T08:10:45.283 回答