2009-08-05 5 views
1

Я пытаюсь зарегистрировать 3 свойства зависимостей в окне, чтобы управлять его форматированием. Я просматривал код, но мне что-то не хватает.WPF: DependencyProperty отказывается работать

public static readonly DependencyProperty TextColorProperty = DependencyProperty.Register("TextColor", typeof(Color), typeof(WinStickyFingers), new PropertyMetadata(Colors.White)); 
public Color TextColor { 
    get { return (Color)base.GetValue(TextColorProperty); } 
    set { base.SetValue(TextColorProperty, value); } 
} 

public static readonly DependencyProperty BackgroundColorProperty = DependencyProperty.Register("BackgroundColor", typeof(Color), typeof(WinStickyFingers), new PropertyMetadata(Colors.Black)); 
public Color BackgroundColor { 
    get { return (Color)base.GetValue(BackgroundColorProperty); } 
    set { 
     base.SetValue(BackgroundColorProperty, value); 
    } 
}  
<TextBlock DockPanel.Dock="Top" Text="{Binding Name}" Foreground="{Binding TextColor,Converter={StaticResource DebugConverter}}" Background="{Binding Path=BackgroundColor}" /> 

Я использую метод отладки Bea Stollnitz, но моя точка останова даже не срабатывает.

ответ

1

Что такое DataContext от TextBlock? Как он знает, что он должен связываться со свойствами на вашем Window?

Вам нужно либо установить DataContext к экземпляру Window или установить Source (или RelativeSource или ElementName) свойств на креплениях. Все эти свойства существуют как средство разрешения связанного объекта для вашего Binding. DataContext - это резерв, если ни один из остальных не установлен, но я предполагаю, что вы тоже этого не задали.

+0

У меня создалось впечатление, что ближайший верхний уровень. Разработка ASP.NET загрязнила мой разум;) Проблема решена путем установки RelativeSource в родительском контейнере. Благодарю. – Echilon

Смежные вопросы