下面是一个示例,展示如何将TextBox和TextBlock绑定到DependencyProperty。
首先,我们需要创建一个自定义的依赖属性。在这个示例中,我们创建一个名为TextProperty的依赖属性,用于存储文本。
public static readonly DependencyProperty TextProperty = DependencyProperty.Register("Text", typeof(string), typeof(MainWindow), new PropertyMetadata(""));
public string Text
{
get { return (string)GetValue(TextProperty); }
set { SetValue(TextProperty, value); }
}
接下来,我们创建一个包含TextBox和TextBlock的界面。我们将TextBox的Text属性绑定到自定义依赖属性Text,并将TextBlock的Text属性绑定到同一个自定义依赖属性。
在代码中,我们需要确保将窗口的DataContext设置为自己的ViewModel对象。
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
DataContext = new ViewModel();
}
}
public class ViewModel : INotifyPropertyChanged
{
private string _text;
public string Text
{
get { return _text; }
set
{
_text = value;
OnPropertyChanged(nameof(Text));
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
这样,当你在TextBox中输入文本时,TextBlock也会更新显示相同的文本。