C# 如何使用PropertyChangedCallBack
我有一个绑定到依赖性属性的TextBox,我实现了一个PropertyChangedCallBack函数,当文本更改时,我需要调用TextBox.ScrollToEnd(),但我不能,因为PropertChanged函数需要是静态的,有没有办法解决这个问题C# 如何使用PropertyChangedCallBack,c#,wpf,dependency-properties,propertychanged,C#,Wpf,Dependency Properties,Propertychanged,我有一个绑定到依赖性属性的TextBox,我实现了一个PropertyChangedCallBack函数,当文本更改时,我需要调用TextBox.ScrollToEnd(),但我不能,因为PropertChanged函数需要是静态的,有没有办法解决这个问题 static FrameworkPropertyMetadata propertyMetaData = new FrameworkPropertyMetadata ( "MyWindow", Framewo
static FrameworkPropertyMetadata propertyMetaData = new FrameworkPropertyMetadata
(
"MyWindow",
FrameworkPropertyMetadataOptions.BindsTwoWayByDefault,
new PropertyChangedCallback(TextProperty_PropertyChanged)
);
public static readonly DependencyProperty TextProperty = DependencyProperty.Register
(
"TextProperty",
typeof(string),
typeof(OutputPanel),
propertyMetaData
);
private void TextProperty_PropertyChanged(DependencyObject obj, DependencyPropertyChangedEventArgs e)
{
textbox.ScrollToEnd(); //An object reference is required for the non-static field.
}
public string Text
{
get
{
return this.GetValue(TextProperty) as string;
}
set
{
this.SetValue(TextProperty, value);
//textbox.ScrollToEnd(); // I originally called it here but I think it should be in the property changed function.
}
}
DependencyObject
是引发事件的对象。您需要将obj
转换为所需的类型。例如
TextBox textbox = (TextBox)obj;
textbox.ScrollToEnd();