简而言之,我想使用DataContext绑定为另一个类中的公共自动属性的值分配标签。
所以我有一个包含公共自动属性的类,如下所示:
public class MyData
{
public string DogName { get; set; }
}
我的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”。我错过了什么?
由于
答案 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}"/>