无法在wpf中绑定模型
本文关键字:绑定 模型 wpf | 更新日期: 2023-09-27 18:29:38
我是wpf的新手,我只做了一个简单的绑定,如下所示:
我有一门课:
public class Test
{
public int x;
public int y;
}
我将DataContext设置为:
public partial class MainWindow : Window
{
Test a;
public MainWindow()
{
InitializeComponent();
a = new Test();
a.x = 5;
a.y = 6;
DataContext = a;
}
private void Button_Click(object sender, RoutedEventArgs e)
{
Console.WriteLine(a.x);
Console.WriteLine(a.y);
}
}
在XAML中:
<TextBox Grid.Row="0" Grid.Column="0" Text="{Binding x}"></TextBox>
<TextBox Grid.Row="1" Grid.Column="0" Text="{Binding y}"></TextBox>
<Button Grid.Row="2" Grid.Column="0" Content="Show" Click="Button_Click"></Button>
那么文本框没有值,当我按下按钮时,值仍然不变。
我在教程中尝试过这样绑定:
DataContext = this;
在XAML中:
<TextBox Grid.Row="0" Grid.Column="0" Text="{Binding Width}"></TextBox>
<TextBox Grid.Row="1" Grid.Column="0" Text="{Binding Height}"></TextBox>
它起作用了,有人能向我解释一下这里出了什么问题吗?感谢
注释字段中提到的不是有效的绑定源。您需要将其转换为属性
public class Test
{
public int x { get; set; }
public int y { get; set; }
}
有关有效绑定源的完整列表,请查看绑定源概述链接,但简而言之是
您可以绑定到任何公共语言运行时(CLR)对象的公共属性、子属性以及索引器