C# WPF-绑定到公共字段

C# WPF-绑定到公共字段,c#,wpf,C#,Wpf,我看起来 它很好用。但我想把它复杂化 再创建一个类。它将是上面视频示例中Person类的简单包装器 public class MetaPerson { public Person Person; public String SomeMeta; } 在构造函数窗口中编写代码 public MainWindow() { InitializeComponent(); var metaPerson = new MetaPerson

我看起来

它很好用。但我想把它复杂化

再创建一个类。它将是上面视频示例中
Person
类的简单包装器

public class MetaPerson
{
    public Person Person;
    public String SomeMeta;
}
在构造函数窗口中编写代码

 public MainWindow()
 {
     InitializeComponent();

     var metaPerson = new MetaPerson
                          {
                              Person = new Person("Lola", "Azazaeva", 25, Gender.Female),
                              SomeMeta = "Eto some meta!"
                          };

       //Setas datacontext
       DataContext = metaPerson;
    }
在XAML中,我像在视频示例中一样编写:

    <StackPanel>
        <ContentControl Content="{Binding}">
            <ContentControl.ContentTemplate>
                <DataTemplate>
                    <StackPanel>
                        <TextBlock Text="{Binding Person.Name}" FontSize="12" Foreground="Red"/>
                    </StackPanel>
                </DataTemplate>
            </ContentControl.ContentTemplate>
        </ContentControl>
    </StackPanel>

那不行

        <StackPanel>
            <ContentControl Content="{Binding Person}">
                <ContentControl.ContentTemplate>
                    <DataTemplate>
                        <StackPanel>
                            <TextBlock Text="{Binding Name}" FontSize="12" Foreground="Red"/>
                        </StackPanel>
                    </DataTemplate>
                </ContentControl.ContentTemplate>
            </ContentControl>
        </StackPanel>

那也不行:(


我做错了什么?

唯一的问题是,您已经将变量设置为成员——它们必须是属性才能使绑定工作

public class MetaPerson
{
    public Person Person { get; set; }
    public String SomeMeta { get; set; }
}

真的很有效,thx。仍然不能适应WPF的特性