也许这是非常错误的。我有一个文本框,希望该文本框中的值与类的成员同步。我以为我使用了绑定,但我无法控制它。我在下面尝试过,但不起作用。我哪里想错了?
这是我的 XAML:
<Window x:Class="tt_WPF.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:tt_WPF"
Title="MainWindow" SizeToContent="WidthAndHeight">
<StackPanel>
<TextBox x:Name="tb" Width="200" Text="{Binding local:abc.Name}"></TextBox>
<Button Click="Button_Click">Ok</Button>
</StackPanel> </Window>
Run Code Online (Sandbox Code Playgroud)
这是背后的代码:
public class ABC
{
public string Name { get; set; }
}
public partial class MainWindow : Window
{
private ABC abc = new ABC();
public MainWindow()
{
InitializeComponent();
}
private void Button_Click(object sender, RoutedEventArgs e)
{ }
}
Run Code Online (Sandbox Code Playgroud)
首先,实现INotifyPropertyChanged并引发 ABC.Name 上的属性更改事件。
您需要将 MainWindow.cs 中的 ABC 对象设置为数据上下文并将 Name 绑定到TextBox.Text。在隐藏代码中:
public ABC MyABC { get; set; }
public MainWindow()
{
InitializeComponent();
MyABC = new ABC();
DataContext = MyABC;
}
Run Code Online (Sandbox Code Playgroud)
并在 XAML 中绑定:
<TextBox x:Name="tb" Width="200" Text="{Binding Name, UpdateSourceTrigger="PropertyChanged"}"/>
Run Code Online (Sandbox Code Playgroud)