WPF - 绑定到公共领域

时间:2013-08-01 07:22:31

标签: c# wpf

我看了video-example

工作正常。但我想让它复杂化一些。

再创建一个课程。它将是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>

这也行不通:(

我做错了什么?

1 个答案:

答案 0 :(得分:2)

唯一的问题是你已经将变量作为成员 - 它们必须是属性才能使绑定工作。

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