Страницы

Поиск по вопросам

понедельник, 8 июля 2019 г.

Пробросить свойство зависимости в UserControl

Есть UserControl


Я добавил в него свойство зависимости:
public string Text { get { return (string)GetValue(TextProperty); } set { SetValue(TextProperty, value); txt.Text = Text; // txt мой tetxtbox из контрола } }
public static readonly DependencyProperty TextProperty = DependencyProperty.Register("Text", typeof(string), typeof(TextBoxP), new PropertyMetadata(null));
Потом в проекте пишу:

Но текст не отображается, как исправить?


Ответ

Это делается примерно так:

А свойство зависимости должно быть обычное:
public string Text { get => (string)GetValue(TextProperty); set => SetValue(TextProperty, value); }
public static readonly DependencyProperty TextProperty = DependencyProperty.Register(nameof(Text), typeof(string), typeof(TextBoxP));
Не забывайте, что обычное свойство к свойству зависимости нужно лишь для удобства использования в коде, при установке свойств в XAML фреймворк пишет значение напрямую в DependencyProperty TextProperty, собственно поэтому никакая логика, помещенная в сеттер Text, не будет выполняться.

Комментариев нет:

Отправить комментарий