如何绑定到WPF中属性的属性

如何绑定到WPF中属性的属性,wpf,data-binding,Wpf,Data Binding,我有一个listview谁的itemssource是MyModel的一个可观察的集合。我试图找出如何将textbox文本的属性绑定到模型所有者属性的Name属性 public class Person { public string Name { get; set; } public string Address { get; set; } //... } public class MyModel { public string Title { get; set

我有一个listview谁的itemssource是MyModel的一个可观察的集合。我试图找出如何将textbox文本的属性绑定到模型所有者属性的Name属性

public class Person
{
    public string Name { get; set; }
    public string Address { get; set; }
    //...
}

public class MyModel
{
    public string Title { get; set; }
    public Person Owner { get; set; }
    //...
}
我试过:

<TextBlock Text="{Binding Owner.Name}" /> 


但这会留下文本块空白。正确的语法是什么?

检查DataContext是否设置正确,并实现INotifyPropertyChanged(在属性值更改时引发它定义的事件)。

绑定看起来很好。我假设您将
TextBlock
放入
DataTemplate
并将其附加到
列表视图中。如果是的话,那就行了

要查找错误,请通过文本替换
绑定
,以查看是否有一些行(文本必须显示在每一行中)。如果没有,请检查
项目资源
。如果是,请检查您的
MyModel
-实例是否确实附加了
Person
-对象,并且
Name
-属性是否为null或空。同时检查VS的输出窗口。在那里您将看到绑定错误消息

如果您没有DataTemplate,下面是一个示例:

 <ListView ItemsSource="[Your ItemsSource]">
    <ListView.ItemTemplate>                
        <DataTemplate>
            <Grid>
                <TextBlock Text="{Binding Owner.Name}"/>
            </Grid>                    
        </DataTemplate>                
    </ListView.ItemTemplate>                                    
 </ListView>

尝试使用数据源向导表单VS 2010 我只是添加这些类,然后单击,clik,clik

<TextBox Grid.Column="1" Grid.Row="0" Height="23" HorizontalAlignment="Left" Margin="3" Name="nameTextBox" Text="{Binding Path=Owner.Name, Mode=TwoWay, ValidatesOnExceptions=true, NotifyOnValidationError=true}" VerticalAlignment="Center" Width="120" />


我很笨。实际上,我没有将Name属性设置为属性,而是将其设置为公共成员。请考虑你的答案来解释你的答案是如何回答这个10岁的问题的方式,现有的答案不。
<Slider  Margin="81,161.66,66,0" Name="Height" Minimum="0" Maximum="10" Width="400"></Slider>
<Slider Margin="81,1.66,66,0"  Name="Width" Minimum="0" Maximum="10" Width="400"/>
<Ellipse Height="{Binding ElementName=Height}" Width="{Binding ElementName=Width}"  Fill="Blue" ></Ellipse>