0

我不是 Silverlight 专家,我正在努力解决一个恼人的问题。

我在网格中有一个 Telerik RadRichTextbox。此网格位于作为 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 后面的代码中为空。然后我想到了获取_Editor的父级,即Grid。它的 DataContext 也为 null,其父级的 Grid 也为 null。

有任何想法吗?

4

1 回答 1

0

我认为您正在寻找的是 DataContext 代理。考虑这个例子:

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 回答