1

我看了那个视频示例

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

再创建一个类。这将是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>

那也行不通:(

我究竟做错了什么?

4

1 回答 1

2

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

public class MetaPerson
{
    public Person Person { get; set; }
    public String SomeMeta { get; set; }
}
于 2013-08-01T07:31:16.893 回答