mvvm-light:Normal属性或DependencyProperty

时间:2012-05-08 11:03:50

标签: mvvm-light

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

2 个答案:

答案 0 :(得分:3)

我一直在寻找关于MVVM灯的这些属性主题的一段时间。以下是我对MVVM光中提供的属性片段的理解。实际上没有任何情况下你会使用一个而不是另一个,因为它们用于不同的目的。

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

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

依赖属性 - 查看代码段时的具体内容。可以将这些属性设置为常量值,或者对viewmodel数据上的依赖更改使用数据绑定。

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

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

示例包括:Dockpanel具有Dockpanel本身未使用的“Dock”(附加属性名称)。它由包含在其中的子项使用,子项现在可以设置属性:DockPanel.Dock =“Top”。

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

在上面的示例代码中:

Bindable Property 是EmployeeName,它是viewmodel代码中的公共属性。

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

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

答案 1 :(得分:1)

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

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