У меня есть приложение WPF, в котором я использую свойства зависимостей в коде, которые я хочу установить с помощью объявлений XAML.
например,
<l:SelectControl StateType="A" Text="Hello"/>
Так что в этом примере у меня есть UserControl
с именем SelectControl
, у которого есть свойство с именем StateType
, которое манипулирует некоторыми другими свойствами в установщике.
Чтобы проиллюстрировать проблему, я поместил еще одно свойство с именем Text
в этом примере,продолжайте читать, и я объясню далее.
Выдержка из кода ...
public static readonly DependencyProperty TextProperty = DependencyProperty.Register("Text", typeof(String), typeof(SelectControl));
public String Text
{
get { return (String)GetValue(TextProperty); }
set { SetValue(TextProperty, value); }
}
public static readonly DependencyProperty StateTypeProperty = DependencyProperty.Register("StateType", typeof(String), typeof(SelectControl));
public String StateType
{
get { return (String)GetValue(StateTypeProperty) }
set
{
switch (value)
{
case "A":
AnotherPropertyBoolean = true;
break;
case "B":
AnotherPropertyBoolean = false;
break;
default:
// this is only an example...
}
}
}
Теперь, если я установлю точку останова на установщике (для StateType
или Text
)получается, что он никогда не выполняется.
Однако значения, объявленные для Text
, то есть «Hello», появляются в его привязке данных TextBox
, и, конечно, я связываю другой текстовый элемент управления с StateType
.значение Я тоже это вижу.
Кто-нибудь знает, что происходит?