У меня есть пользовательский элемент управления, который имеет свойство Title, привязанное к свойству Text TextBlock:
XAML
<TextBlock Grid.Column="0" Text="{Binding ElementName=me,Path=Title}" HorizontalAlignment="Left" VerticalAlignment="Top" />
Код позади
public String Title
{
get { return (String)GetValue(TitleProperty); }
set { SetValue(TitleProperty, value); }
}
public static readonly DependencyProperty TitleProperty =
DependencyProperty.Register("Title", typeof(String), typeof(ClosableTabHeader), new UIPropertyMetadata(""));
ИЯ хочу связать это свойство Title с другим свойством в главном окне:
XAML
<my:ClosableTabHeader Title="{Binding ElementName=me,Path=ShortenAmount}" />
Код позади
public Int32 ShortenAmount
{
get { return (Int32)GetValue(ShortenAmountProperty); }
set { SetValue(ShortenAmountProperty, value); }
}
public static readonly DependencyProperty ShortenAmountProperty =
DependencyProperty.Register("ShortenAmount", typeof(Int32), typeof(MainWindow), new UIPropertyMetadata(0));
Однако текстовый блок не обновляется.
Когда я заменяю объявление usercontrol на TextBlock, оно работает нормально:
<TextBlock Text="{Binding ElementName=me,Path=ShortenAmount}" />
Хотя, конечно, существуют обходные пути, с точки зрения того, что я пытаюсь сделать сам, могу ли язнаете, где я ошибся?