无法在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>

它起作用了,有人能向我解释一下这里出了什么问题吗?感谢

无法在wpf中绑定模型

注释字段中提到的不是有效的绑定源。您需要将其转换为属性

public class Test
{
    public int x { get; set; }
    public int y { get; set; }
}

有关有效绑定源的完整列表,请查看绑定源概述链接,但简而言之是

您可以绑定到任何公共语言运行时(CLR)对象的公共属性、子属性以及索引器