У меня есть приложение WPF, в котором я использую свойства зависимостей в отделенном коде, которые я хочу установить с помощью объявлений XAML.
e.g.
<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
, я тоже это вижу.
Кто-нибудь знает, что происходит?