使用DataContext绑定为另一个类中的公共自动属性的值分配标签

时间:2012-07-29 08:02:48

标签: c# .net wpf visual-studio-2010 data-binding

简而言之,我想使用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”。我错过了什么?

由于

1 个答案:

答案 0 :(得分: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}"/>