0

コンテンツ コントロールに Int Dependency プロパティを使用してコンテンツ コントロールを作成しました。

コントロールには、コントロールのテンプレートを含む既定のスタイルがあります。

今私が直面している問題は、依存関係プロパティの値が何であっても、レンダリングすると常にゼロが表示されることです

サンプル コード スニペットは次のとおりです。


<ControlTemplate x:Key="ControlTemplate2" TargetType="My:Control">
<Grid x:Name="grid" Width ="128" Height="128>
   <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center" Orientation="Horizontal" Grid.Row="1">
    <TextBlock x:Name="tbxTileCount" DataContext="{TemplateBinding TileCount}" 
                                           Text="{Binding}" Margin="10,0,0,0" 
                                           Foreground="White" VerticalAlignment="Center" FontSize="48" FontFamily="Segoe WP">
<TextBlock.RenderTransform>
<CompositeTransform/>
</TextBlock.RenderTransform>
</TextBlock>
</StackPanel>
</Grid></Grid></ControlTemplate>

    /// <summary>
    /// Count to be displayed 
    /// </summary>
    public int Count
    {
        get { return (int)GetValue(CountProperty); }
        set { SetValue(CountProperty, value); }
    }

    public static readonly DependencyProperty CountProperty =
        DependencyProperty.Register("Count",
                                    typeof(int),
                                    typeof(Control),
                                    null);

依存関係プロパティはデフォルト値に設定されていますが、テキストブロックの DataContext は 0 に設定されています

私はここで何を逃したのですか?

4

1 に答える 1

0

私はこれを機能させることができました。これが私がそれを機能させる方法です:どうやらSilverlight 4の場合、これはコントロールプロパティをデフォルトのテンプレートに関連付ける方法です。


<ControlTemplate x:Key="ControlTemplate2" TargetType="My:Control">
    <Grid x:Name="grid" Width ="128" Height="128>
        <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center" Orientation="Horizontal" Grid.Row="1">
            <TextBlock x:Name="tbxTileCount" Text="{Binding RelativeSource={RelativeSource TemplatedParent},Path=Count}" 
                    Margin="10,0,0,0" Foreground="White" VerticalAlignment="Center" FontSize="48" FontFamily="Segoe WP">
                <TextBlock.RenderTransform>
                <CompositeTransform/>
                </TextBlock.RenderTransform>
            </TextBlock>
        </StackPanel>
    </Grid>
</ControlTemplate>
于 2011-03-29T09:16:20.490 に答える