WPF之Binding的三种简单写法
环境
类代码
public class Person:INotifyPropertyChanged
{
private string name;
public string Name
{
get { return this.name; }
set
{
this.name = value;
notifyPropertyChanged("Name");
}
}
private int age;
public int Age
{
get { return this.age; }
set
{
this.age = value;
notifyPropertyChanged("Age");
}
}
public event PropertyChangedEventHandler PropertyChanged;
public void notifyPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
窗体代码
public partial class BindTest : Window
{
public Person per;
public BindTest()
{
InitializeComponent();
per = new Person { Age = 100, Name = "深入浅出WPF" };
Binding b = new Binding();
b.Source = per;
b.Path = new PropertyPath("Name");
BindingOperations.SetBinding(textbox, TextBox.TextProperty, b);
box.DataContext = per;
}
private void Button_Click(object sender, RoutedEventArgs e)
{
text.SetBinding(TextBox.TextProperty, new Binding("Name") { Source = per });
}
}
XAML代码
<StackPanel >
<TextBox Margin="10" Height="40" x:Name="textbox"></TextBox>
<TextBox Margin="10" Height="40" x:Name="text"></TextBox>
<TextBox Margin="10" Height="40" Text="{Binding Name}" x:Name="box"></TextBox>
<Button Height="40" Click="Button_Click"></Button>
</StackPanel>
三种写法
1,
C#
per = new Person { Age = 100, Name = "深入浅出WPF" };
Binding b = new Binding();
b.Source = per;
b.Path = new PropertyPath("Name");
BindingOperations.SetBinding(textbox, TextBox.TextProperty, b);
Xamll
<TextBox Margin="10" Height="40" x:Name="textbox"></TextBox>
2
C#
text.SetBinding(TextBox.TextProperty, new Binding("Name") { Source = per });
Xaml
<TextBox Margin="10" Height="40" x:Name="text"></TextBox>
3
C#
InitializeComponent();
box.DataContext = per;
Xaml
<TextBox Margin="10" Height="40" Text="{Binding Name}" x:Name="box"></TextBox>
其中Text="{Binding Name}"与Text="{Binding Path=Name}"
原文:http://www.cnblogs.com/wangboke/p/5311336.html