c# wpf static dependency-properties propertychanged

c# - Cómo usar PropertyChangedCallBack



wpf static (1)

Tengo un TextBox vinculado a una propiedad de dependencia, he implementado una función PropertyChangedCallBack, cuando el texto cambia, necesito llamar textbox.ScrollToEnd () pero no puedo, ya que la función PropertChanged debe ser estática, ¿hay alguna manera de evitar esto?

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. } }

Gracias,

Eamonn


DependencyObject es el objeto que provocó el evento. Necesitas lanzar obj al tipo que necesites. P.ej

TextBox textbox = (TextBox)obj; textbox.ScrollToEnd();