Мне нужно иметь доступ к выражению привязки для свойства Text для TextBox из DependencyProperty в TextBox. значение моего DependencyProperty установлено в XAML. Я вызываю GetBindingExpression
в методе DependencyProperty PropertyChangedCallback
, но я слишком рано на этом этапе, потому что GetBindingExpression
всегда возвращает null здесь, но после того, как окно полностью загрузится, оно определенно возвращает значение (я тестировал с помощью кнопки на экране, чтобы изменить значение моего DependencyProperty).WPF - GetBindingExpression в PropertyChangedCallback DependencyProperty
У меня проблема с загрузкой здесь, где значение моей DependencyProperty установлено до того, как свойство Text привязано к моей модели представления. Мой вопрос: есть ли какое-то событие, которое я могу связать, чтобы определить, когда привязка свойства Text завершена? Предпочтительно без изменения XAML моего TextBox, поскольку у меня есть сотни из них в решении.
public class Foobar
{
public static readonly DependencyProperty TestProperty =
DependencyProperty.RegisterAttached(
"Test", typeof(bool), typeof(Foobar),
new UIPropertyMetadata(false, Foobar.TestChanged));
private static void TestChanged(DependencyObject o, DependencyPropertyChangedEventArgs args)
{
var textBox = (TextBox)o;
var expr = textBox.GetBindingExpression(TextBox.TextProperty);
//expr is always null here, but after the window loads it has a value
}
[AttachedPropertyBrowsableForType(typeof(TextBoxBase))]
public static bool GetTest(DependencyObject obj)
{
return (bool)obj.GetValue(Foobar.TestProperty);
}
[AttachedPropertyBrowsableForType(typeof(TextBoxBase))]
public static void SetTest(DependencyObject obj, bool value)
{
obj.SetValue(Foobar.TestProperty, value);
}
}
Где вы настройки привязки? – lerner1225