wpf - 如何将数据绑定(bind)到 Expression Blend 中的 ViewModel?

标签 wpf silverlight mvvm expression-blend

在 WPF 和 Silverlight 中,您可以创建 View 模型对象,并在运行时构造控件时将其设置到控件的 DataContext 中。然后,您可以将可视对象的属性绑定(bind)到 DataContext 中的属性。

设置绑定(bind)的一种方法是将绑定(bind)直接键入标签中:

<TextBox Text="{Binding Path=Description}"/>

这会将文本框绑定(bind)到 View 模型中的 Description 属性。

在绑定(bind)中输入的问题是您可能会犯输入错误。 (如果您有数百个绑定(bind)要做,您几乎肯定会犯错误。)

在 Expression Blend 中,“属性”窗口中“文本”属性旁边有一个小白点。这将打开一个菜单,您可以从中创建数据绑定(bind)。

  • 如何让我的 View 模型属性显示在“创建数据绑定(bind)”对话框中,以便我可以选择它们。
  • Blend 中的数据绑定(bind)配置是否会干扰在运行时将 View 模型设置到 DataContext 中?

最佳答案

一种技术是将虚拟机作为资源包含在您的 View 中:

<UserControl>
    <UserControl.Resources>
        <local:YourViewModel x:Key="ViewModel"/>
    </UserControl.Resources>
</UserControl>

然后您可以在其他地方将其引用为 DataContext="{StaticResource ViewModel}"

不能说我喜欢它,但我不能说我喜欢 Blend 强加给你的设计的任何 View 优先的特质。

关于wpf - 如何将数据绑定(bind)到 Expression Blend 中的 ViewModel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1503852/

相关文章:

android - 如何使用 koin 在 customView 中注入(inject) View 模型?

c# - 数据绑定(bind)到列数未知的网格

.net - 如何更改WPF TabControl中TabItems的重叠顺序

Silverlight TextBox,移动插入符号位置

c# - 如何在不使用 INotifyPropertyChanged 的​​情况下更新 View 和 View 模型

c# - 在 MVVM 中绑定(bind) ListPicker (Selection_Changed)

c# - 在类库中使用 Caliburn Micro

c# - WPF ItemsControl IsMouseOver 未按预期工作

html - 如何定位 Silverlight 控件

Silverlight:删除网格中特定单元格的内容