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