0

私はSilverlightの専門家ではなく、苛立たしい問題に苦しんでいます。

グリッド内にTelerikRadRichTextboxがあります。このグリッドは、ItemsControlの一部であるDataTemplate内にあります。そのようです:

<ItemsControl Grid.Row="1" ItemsSource="{Binding MyCollection}">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <Grid>
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto" />
                    <RowDefinition Height="*" />
                </Grid.RowDefinitions>

                <telerik:RadRichTextBox x:Name="_Editor" DocumentChanged="HandleditorDocumentChanged"/>
                <Xaml:XamlDataProvider x:Name="xamlProvider" Xaml="{Binding Text}" RichTextBox="{Binding ElementName=_Editor}" />

                <TextBox Grid.Row="1" Text="{Binding Text2}" />
            </Grid>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

DocumentChangesイベントで、DataTemplateのDataContextにアクセスしたいと思います。_EditorのDataContextを{Binding}に設定しようとしましたが、DataContextの背後にあるコードがnullです。次に、グリッドである_Editorの親を取得することを考えました。そのDataContextもnullであり、その親であるグリッドもnullです。

何か案は?

4

1 に答える 1

0

あなたが探しているのは DataContext Proxy だと思います。次の例を検討してください。

http://weblogs.asp.net/dwahlin/archive/2009/08/20/creating-a-silverlight-datacontext-proxy-to-simplify-data-binding-in-nested-controls.aspx

于 2012-05-28T10:46:34.680 に答える