WPF-绑定到公共字段

本文关键字:字段 绑定 WPF- | 更新日期: 2023-09-27 18:25:49

我看了的视频示例

它运行良好。但我想要一些复杂的东西。

再创建一个类。它将是以上视频示例中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>

这也不起作用:(

我做错了什么?

WPF-绑定到公共字段

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

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