WPF 绑定到字段有效

WPF binding to fields works

所以我一直认为 WPF 只绑定到属性

但是我将我的文本框绑定到一个 public 字段,它起作用了,你能给我解释一下吗?

这是我的文本框 XAML:

 <TextBox x:Name="afweh"  DataContext="Class1" HorizontalAlignment="Left" Height="24" Margin="225,13,0,0" TextWrapping="Wrap" Text="{Binding j}" VerticalAlignment="Top" Width="162"/>

这是我的领域:

public static class Class1
{
    public static string j="houmaaaaaaaaaaaani" ;
  //some code 
}

如您所见,"J" 是一个字段而不是 属性

谢谢。

您不能绑定到静态或字段:

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
        this.DataContext = new Class1();
    }
}

public class Class1
{
    public static string j = "houmaaaaaaaaaaaani";
    public string J { get { return j; } set { j = value; } }
}

并且在 xaml 中:

<Window x:Class="WpfApplication4.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525">
    <Grid>
        <TextBox x:Name="afweh" HorizontalAlignment="Left" Height="24" Margin="225,13,0,0" TextWrapping="Wrap" Text="{Binding J}" VerticalAlignment="Top" Width="162"/>
    </Grid>
</Window>