wpf - XAML DataContext 和 ViewModel 类型

标签 wpf xaml

我在我的应用程序中使用 MVVM,DataContext控件在我的 c# 代码中分配(而不是在 XAML 中)。

因此 XAML 控件不知道它的 DataContext 是哪个实例类型。设定为。结果是我的 View 模型在 XAML 中的绑定(bind)属性没有重构支持和智能感知。

有没有办法告诉 XAML 中的控件它的 DataContext 是哪种类型?已连接?

因此,当我在 ViewModel 中修改属性名称或搜索该属性的所有引用时,我希望 XAML 绑定(bind)中的该属性也得到考虑。

最佳答案

没有框架支持,你能做的最好的就是告诉 VS 设计者 DataContext 的“形状”,这样它就会给你属性的提示。如果你想让你的解决方案更耐重构,我会推荐 Daniel 的 T4 元数据解决方案:

http://www.codeproject.com/KB/codegen/T4Metadata.aspx

这会为您的 View 模型生成元数据,您可以在 XAML 中引用这些元数据:

<StackPanel DataContext="{Binding Source={StaticResource Person}}">
   <TextBlock >Name:</TextBlock>
   <TextBox Text="{Binding Path={x:Static Metadata:PersonMetadata.NamePath}}"/>
</StackPanel>

科林·E。

关于wpf - XAML DataContext 和 ViewModel 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4462097/

相关文章:

wpf - 并排放置堆叠面板

WPF ListView : Is it possible for rows to have subrows?

c# - 我能否将 XAML/WPF 窗口复制到第二个窗口中,例如画中画电视?

c# - 这段 RxUI 代码有什么问题?

wpf - 使用 DockPanel 滚动内容

c# - 无法隐式转换类型 'System.Collections.Generic.List to ' System.Collections.ObjectModel.ObservableCollection

wpf - 选择但失去焦点时更改 WPF treeViewItem 背景颜色

c# - XAML 绑定(bind)到另一个元素的对立面

c# - 当 ObservableCollection 值更新时,WPF Datagrid 绑定(bind)不更新

c# - 如何在 XAML (Silverlight) 的资源字典中绑定(bind) `Path.Data`