如何在后面的代码中替换来自子用户控件的父控件的内容

时间:2014-10-17 21:56:32

标签: wpf

我在auditInventoryViews后面的代码中写了一些东西:SchedulerView用户控件来替换父内容控件“DSViewContentControl”的内容     我试过“this.content”,但它只替换当前用户控件的内容,其他内容仍然保留在usercontrol中。

所以我怎样才能在后面的代码中替换来自child的父控件的内容。

示例代码

<UserControl>
<ContentControl x:Name="DSViewContentControl" >
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition/>
            <RowDefinition/>

        </Grid.RowDefinitions>

        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*" ></ColumnDefinition>
            <ColumnDefinition Width="*"></ColumnDefinition>
        </Grid.ColumnDefinitions>
        <!-- region scheduler -->
         <StackPanel Grid.Row="1" Grid.Column="1" Margin="40,5,0,0">
          some content
        </StackPanel>
        <StackPanel Grid.Row="1" Grid.Column="1" Margin="40,5,0,0">
        <auditInventoryViews:SchedulerView/>
        </StackPanel>
    </Grid>

</ContentControl>
</UserControl>

1 个答案:

答案 0 :(得分:0)

您可以通过Parent属性从子级引用父级控件。例如,从DSViewContentControl代码隐藏中获取SchedulerView

StackPanel parentStackpnl = (StackPanel)this.Parent;
Grid grandParentGrid = (Grid)parentStackpnl.Parent;
ContentControl DSViewContentControl = (ContentControl)grandParentGrid.Parent;
//at this point doing operation on DSViewContentControl is straightforward