C# 将一个类的对象的属性绑定到另一个类中不会';行不通

C# 将一个类的对象的属性绑定到另一个类中不会';行不通,c#,wpf,xaml,C#,Wpf,Xaml,我在WPF中绑定时遇到了一个奇怪的问题。 这里有一个我正在做的简单示例: 公共类项目 { 私有字符串\u标题; 公共字符串标题 { 获取{return\u title;} 设置 { _标题=价值; RaiseProperty变更(“所有权”); } } } 公营阶层人士 { 私有字符串\u名称; 公共字符串名 { 获取{return\u name;} 设置 { _名称=值 RaiseProperty变更(“名称”); } } 私人项目(u项目),; 公共工程项目 { 获取{return\u pr

我在
WPF
中绑定时遇到了一个奇怪的问题。 这里有一个我正在做的简单示例:

公共类项目
{
私有字符串\u标题;
公共字符串标题
{
获取{return\u title;}
设置
{
_标题=价值;
RaiseProperty变更(“所有权”);
}
}
}
公营阶层人士
{
私有字符串\u名称;
公共字符串名
{
获取{return\u name;}
设置
{
_名称=值
RaiseProperty变更(“名称”);
}
}
私人项目(u项目),;
公共工程项目
{
获取{return\u project;}
设置
{
_项目=价值;
RaiseProperty变更(“项目”);
}
}
}
现在我将一个网格绑定到视图中的人员实例,它可以将控件绑定到项目和人员类的名称,但我真的不明白为什么不能绑定到
Project.Title

我这样写我的
XAML
代码:

<TextBox Text="{Binding Name}"/>
<Combobox .... SelectedItem="{Binding Project}"/>
<TextBox Text="{Binding Project.Title}"/>

上面的前两个控件正确绑定,但最后一个
TextBox
没有。我不知道为什么它可以访问
Project
,但不能访问
Project.Title
?这是我在WPF中看到的另一件奇怪的事情

试试“Path=Project.Title”。
在同一个案例中为我工作。

如果您的DataContext是Person对象的实例,那么它应该可以工作。您可以在运行时使用Snoop()检查绑定。顺便说一句,试试看:)

你也可以

<TextBox DataContext="{Binding Project, Mode=OneWay}" Text="{Binding Title}"/>

可能您的组合框选择没有使用
模式=双向设置所选值:



一旦设置了
项目
,属性就设置好了,
标题
就会显示出来。

谢谢大家,但问题并不是我想的那样。实际上,我曾经将
INotifyPropertyChanged
注入属性,但它似乎没有达到我的预期。我自己实现了
INotifyPropertyChanged
,现在它运行良好。

我会将其作为评论来写,但我没有足够的声誉。Wellcome user2760623!别担心,我建议你从一开始就使用更清晰的用户名,因为你会喜欢这个网站,谢谢你的回答,我会试试。@user2760623
{Binding Project.Title}
{Binding Path=Project.Title}
之间没有区别。是萨米人,我知道基本上是一样的。但是,如果我不使用“Path=”VisualStudio,则会将对象(“项目”)显示为红色,而将属性(“标题”)显示为蓝色。当使用“Path=”时,它都是蓝色的。所以我想可能会有不同。在我写的时候,我会把它作为一个注释来写……看看输出窗口中是否有任何与绑定相关的错误。实际上没有!但是感谢您提醒我们在空白项目中复制它,或者用实际代码更新上面的代码片段。事实上,它应该可以正常工作,因为它没有任何问题。