Как использовать PropertyChangedCallBack
У меня есть текстовое поле, привязанное к свойству dependancy, я реализовал функцию PropertyChangedCallBack, когда текст изменяется, мне нужно вызвать textbox.ScrollToEnd () но я не могу, так как функция PropertChanged должна быть статической, есть ли способ обойти это?
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.
}
}
спасибо,
Аминь
1 ответов
на DependencyObject
- это объект, который вызвал событие. Вам нужно бросить obj
к типу вам. Е. Г.
TextBox textbox = (TextBox)obj;
textbox.ScrollToEnd();