Привязка свойства другого элемента управления к пользовательскому элементу управления с помощью Silverlight и Windows Phone 7 - PullRequest
0 голосов
/ 27 июля 2011

Я создал пользовательский элемент управления с именем EllipsisTextBlock с DependencyProperty, целью которого является получение значения свойства другого элемента управления:

public static readonly DependencyProperty CopyTextBlockWidthProperty =
        DependencyProperty.Register("CopyTextBlockWidth", typeof(double), typeof(EllipsisTextBlock),
        new PropertyMetadata(0d, null));

В родительской сетке EllipsisTextBlock я связываю свойство другого элемента управления следующим образом:

<Grid Margin="10,0,0,0" Grid.Column="1">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" MaxHeight="84"/>
            <RowDefinition Height="Auto" MaxHeight="72"/>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="*" MaxHeight="120"/>
        </Grid.RowDefinitions>
        <TextBlock x:Name="tbxTeste" Text="{Binding Title}" FontSize="28" Visibility="Collapsed" Grid.Row="0"></TextBlock>
        <extensions:EllipsisTextBlock Text="{Binding Title}" FontSize="28" TextWrapping="Wrap" CopyTextBlockWidth="{Binding Path=ActualWidth, ElementName=tbxTeste}" Grid.Row="0"></extensions:EllipsisTextBlock>
...

Что происходит, так это то, что для свойства EllipsisTextBlock CopyTextBlockWidth установлено значение никогда .

public double CopyTextBlockWidth
    {
        get { return (double)GetValue(CopyTextBlockWidthProperty); }
        set { SetValue(CopyTextBlockWidthProperty, value); }
    }

Кстати, у класса EllipsisTextBlock есть два других DependencyProperties, которые работают.

Есть идеи?

Спасибо

1 Ответ

0 голосов
/ 27 июля 2011

Хотя это вводит в заблуждение использование синтаксиса атрибута XAML, вызывается SetBinding, а не SetValue или установщик CLR при назначении привязки к свойству в XAML.

...