0
我已經創建了一個名爲EllipsisTextBlock用一個DependencyProperty旨在接收其它控件的屬性值的自定義控制:綁定其他控件的屬性與Silverlight和Windows Phone的自定義控制7
public static readonly DependencyProperty CopyTextBlockWidthProperty =
DependencyProperty.Register("CopyTextBlockWidth", typeof(double), typeof(EllipsisTextBlock),
new PropertyMetadata(0d, null));
在EllipsisTextBlock的父格,我「M結合這樣的其他控件的屬性:
<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工作。
任何想法?
感謝
對不起,瑞恩,我沒有得到你。 – Cesar
我可能可以更好地格式化。當您使用綁定在XAML中對您的依賴項屬性進行賦值時。 WPF會在你的控件上調用SetBinding,所以setter永遠不會被調用。 –
我現在明白了。所以這意味着我需要改變一些東西,否則它根本無法工作?在定義DependencyProperty時,我改變了添加回調方法的行爲,但它也沒有調用。 – Cesar