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>
所以我一直认为 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>