0

简而言之,我想使用 DataContext 绑定为标签分配另一个类中公共自动属性的值。

所以我有一个包含公共自动属性的类,如下所示:

public class MyData
{
    public string DogName { get; set; }
}

我的 WPF 表单如下所示:

WPF

我的 WPF 表单的 CodeBehind 如下所示:

public partial class MainWindow : Window
{
    private MyData myData;

    public MainWindow()
    {
        InitializeComponent();
    }

    private void Window_Loaded(object sender, RoutedEventArgs e)
    {
        myData = new MyData();
        myData.DogName = "Lulu";

        label1.DataContext = myData.DogName;
    }
}

然而,这并不是将 label1 的值更改为“Lulu”,它只是停留在“Label”。我错过了什么?

谢谢

4

1 回答 1

2

这并不是使用 DataContexts 的常见方式(正如您所展示的,MyData作为一个类根本没有任何用途)。试试这个:

//C#
label1.DataContext = new MyData{ DogName = "Lulu" };

//xaml
<Label Content="{Binding Path=DogName}"/>

现在,您还可以使用 MyData 来包含标签的宽度左右。

另一种(可能是最常用的)方法是设置父级的 DataContext,并使各个元素使用它的属性:

//C#
class MyData
{
  public strig DogName{ get; set; }
  public strig CatName{ get; set; }
}

this.DataContext = new MyData{ DogName = "Lulu", CatName = "Fifi" };

//xaml
<Label Content="{Binding Path=DogName}"/>
<Label Content="{Binding Path=CatName}"/>
于 2012-07-29T08:13:19.557 回答