工作正常。但我想让它复杂化一些。
再创建一个课程。它将是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>
这也行不通:(
我做错了什么?
答案 0 :(得分:2)
唯一的问题是你已经将变量作为成员 - 它们必须是属性才能使绑定工作。
public class MetaPerson
{
public Person Person { get; set; }
public String SomeMeta { get; set; }
}