与DataContext.Object.Property的Metro Xaml绑定不起作用

与DataContext.Object.Property的Metro Xaml绑定不起作用,xaml,Xaml,我正在将xaml页面的datacontext设置为传递给构造函数的viewmodel。我的viewmodel有一个名为Item的对象,它有一个名为Category的属性 public DataEntry(DEViewModel vm) { InitializeComponent(); this.vm = vm; this.DataContext = this.vm; } 我正在尝试绑定到ViewModel.Item.Category属性,如下所示: <TextBox Name="txtC

我正在将xaml页面的datacontext设置为传递给构造函数的viewmodel。我的viewmodel有一个名为Item的对象,它有一个名为Category的属性

public DataEntry(DEViewModel vm)
{
InitializeComponent();
this.vm = vm;
this.DataContext = this.vm;
}
我正在尝试绑定到ViewModel.Item.Category属性,如下所示:

<TextBox Name="txtCategory" Text="{Binding Path=Item.Category, Mode=TwoWay}" />

这是行不通的。如果我将datacontext设置为vm.Item,并绑定到Category,它就会工作

关于如何绑定到viewmodel上挂起的对象的属性,有什么想法吗


谢谢,特伦斯像这样做

<TextBox Name="txtCategory" 
    Text="{Binding Category, Mode=TwoWay}" 
    DataContext="{Binding Item}" /> 

它不工作的原因是因为它只查看
DataContext
的属性通知,所以只需将控件的本地
DataContext
设置为
Item
,控件将处理
Item
的属性通知

谢谢, 亚历克斯。

像这样做

<TextBox Name="txtCategory" 
    Text="{Binding Category, Mode=TwoWay}" 
    DataContext="{Binding Item}" /> 

它不工作的原因是因为它只查看
DataContext
的属性通知,所以只需将控件的本地
DataContext
设置为
Item
,控件将处理
Item
的属性通知

谢谢,
Alex。

Alex,谢谢你的意见,但该解决方案不起作用,你能试试吗?它是否弹出某种错误消息?或者它只是没有绑定到字段?它只是没有将值绑定到文本框。如果我将页面上的datacontext设置为object.item,并将文本{binding category}设置为有效,那么我在自己的项目中的一些地方使用了这个解决方案。我只能说文本框的DataContext应该绑定到“object.item”,然后“object.item”的本地字段应该可以访问,并且可以在单个文本框控件上双向绑定。Alex,谢谢你的输入,但是该解决方案不起作用,你能试一下吗?它弹出了某种错误消息吗?或者它只是没有绑定到字段?它只是没有将值绑定到文本框。如果我将页面上的datacontext设置为object.item,并将文本{binding category}设置为有效,那么我在自己的项目中的一些地方使用了这个解决方案。我只能说文本框的DataContext应该绑定到“object.item”,然后“object.item”的本地字段应该可以访问,并且可以在单个textbox控件上双向绑定。