我在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>
答案 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