将 TextBox 绑定到 class 的 属性
Binding a TextBox to a property of a class
也许这是非常错误的。我有一个文本框,希望该文本框中的值与 class 的成员同步。我以为我使用了绑定,但我无法处理它。我在下面尝试过但不起作用。我哪里想错了?
这是我的 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)
{ }
}
首先,实施 INotifyPropertyChanged 并在 ABC.Name 上引发 属性 更改事件。
您需要在 MainWindow.cs 中使用 ABC 对象,因此您需要将其设为 public 属性 并将其绑定到 TextBox.Text
。您还需要在 MyABC 上引发 ProperyChanged 事件;您可以使用上面的 link 计算出来。在代码隐藏中:
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"}"/>
也许这是非常错误的。我有一个文本框,希望该文本框中的值与 class 的成员同步。我以为我使用了绑定,但我无法处理它。我在下面尝试过但不起作用。我哪里想错了?
这是我的 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)
{ }
}
首先,实施 INotifyPropertyChanged 并在 ABC.Name 上引发 属性 更改事件。
您需要在 MainWindow.cs 中使用 ABC 对象,因此您需要将其设为 public 属性 并将其绑定到 TextBox.Text
。您还需要在 MyABC 上引发 ProperyChanged 事件;您可以使用上面的 link 计算出来。在代码隐藏中:
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"}"/>