目的:通过一个Student对象,实现前端两个TextBox输入值相同(此案例仅做实验,用于理解最简单的依赖属性用法,实际中不会这样用)
前端:
<Grid> <StackPanel> <TextBox x:Name="tbx" Width="100" Height="30" Background="LightBlue"/> <TextBox x:Name="tbx1" Width="100" Height="30" Background="LightBlue"/> </StackPanel> </Grid>
后台:
public partial class MainWindow : Window { Student stu = new Student(); public MainWindow() { InitializeComponent(); } private void Window_Loaded(object sender,RoutedEventArgs e) { stu.Name = tbx.Text; Binding bd = new Binding(); bd.Path = new PropertyPath("Text"); //bd.ElementName = "tbx";//注意!!!Source和ElementName不能同时使用. bd.Source = tbx; bd.Mode = BindingMode.TwoWay; BindingOperations.SetBinding(stu,Student.NameProperty,bd); Binding bd2 = new Binding(); bd2.Path = new PropertyPath("Name"); bd2.Source = stu; bd2.Mode = BindingMode.TwoWay; BindingOperations.SetBinding(tbx1,TextBox.TextProperty,bd2); } } public class Student : DependencyObject { public string Name { get { return (string)GetValue(NameProperty); } set { SetValue(NameProperty,value); } } public static readonly DependencyProperty NameProperty = DependencyProperty.Register("Name",typeof(string),typeof(Student)); }