0

DependencyProperty RichTextBlockContentProperty を持つクラス名 TextColumns.cs を定義しました。

public static readonly DependencyProperty RichTextBlockContentProperty =
    DependencyProperty.Register("RichTextBlockContent", typeof(string),
typeof(RichTextColumns), new PropertyMetadata(""));

public string RichTextBlockContent
{
    get { return (string)GetValue(RichTextBlockContentProperty); }
    set  //Debug, but the SetValue won't fire
    {
        SetValue(RichTextBlockContentProperty, value);
    }
} 

XAML では、次のように使用します。

<FlipView x:Name="flipView"
            ItemsSource="{Binding Source={StaticResource itemsViewSource}}">
            <FlipView.ItemTemplate>
                <DataTemplate  x:Name="myDataTemplate">
                    <UserControl Loaded="StartLayoutUpdates" Unloaded="StopLayoutUpdates">
                        <ScrollViewer x:Name="scrollViewer" Style="{StaticResource HorizontalScrollViewerStyle}" Grid.Row="1">
                            <!-- Content is allowed to flow across as many columns as needed -->
                            <common:RichTextColumns x:Name="richTextColumns" Margin="117,0,117,47"
                                                    RichTextBlockContent="{Binding title}">

                                <RichTextBlock x:Name="richTextBlock" Width="560" Style="{StaticResource ItemRichTextStyle}">
                                    <Paragraph>
                                        <Run x:Name="RunText" FontSize="26" FontWeight="SemiBold" Text="{Binding title}"/>
                                    </Paragraph>
                                </RichTextBlock>
                </common:RichTextColumns>
            </UserControl>
        </DataTemplate> 
    </FlipView.ItemTemplate>
</FlipView>

ページが読み込まれると、RichTextBlockContent が Binding の「タイトル」の値を取得し、RichTextBlock の Binding が機能していると想定されます。

見逃したものはありますか?

4

1 に答える 1

1

セッターは呼び出されません。値が設定されたときにロジックを実行する必要がある場合は、PropertyMetadata コンストラクターで PropertyChanged コールバックを提供する必要があります。

http://msdn.microsoft.com/en-us/library/ms557330.aspx

于 2012-08-31T04:21:47.503 に答える