将TextBox绑定到类的属性

时间:2015-01-26 22:08:08

标签: wpf

也许这是非常错误的。我有一个文本框,希望该文本框中的值与类的成员同步。我以为我使用绑定但我无法处理它。我尝试的是下面的,不起作用。我在哪里想错了?

这是我的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>

这里的代码背后是:

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)
    { }
}

1 个答案:

答案 0 :(得分:3)

首先,实现INotifyPropertyChanged并在ABC.Name上引发属性更改事件。

您需要在MainWindow.cs中使用ABC对象,因此您需要将其设为公共属性并将其绑定到TextBox.Text。您还想在MyABC上提升ProperyChanged事件;你可以使用上面的链接找出答案。在代码隐藏中:

public ABC MyABC { get; set; }

public MainWindow()
{
   InitializeComponent();
   DataContext = this;
   MyABC = new ABC();
}

并在XAML中绑定:

<TextBox x:Name="tb" Width="200" Text="{Binding Name, UpdateSourceTrigger="PropertyChanged"}"/>