在Silverlight中访问tabitem的对象

在Silverlight中访问tabitem的对象,silverlight,object,tabitem,Silverlight,Object,Tabitem,我有一个Silverlight用户控件,其中有一个tabcontrol,它使用了几个tabitems。现在,每个tabitem都是另一个Usercontrol。我想知道是否有办法访问这些usercontrol选项卡项之一的对象 例如,如果我的主用户控件中有一个xaml: <controls:TabControl x:Name="TabControl" Grid.Row="1" Grid.Column="1" Foreground="#234BC3"> <

我有一个Silverlight用户控件,其中有一个tabcontrol,它使用了几个tabitems。现在,每个tabitem都是另一个Usercontrol。我想知道是否有办法访问这些usercontrol选项卡项之一的对象

例如,如果我的主用户控件中有一个xaml:

<controls:TabControl x:Name="TabControl" Grid.Row="1" Grid.Column="1" Foreground="#234BC3">
            <controls:TabItem Header="Prestaties" x:Name="TabPres" Visibility="Collapsed">
                <nsl:PrestatiesUC></nsl:PrestatiesUC>
            </controls:TabItem>
            <controls:TabItem Header="Protocollen" x:Name="TabProt" Visibility="Collapsed">
                <nsl:ProtocollenUC></nsl:ProtocollenUC>
            </controls:TabItem>
            <controls:TabItem Header="Adt" x:Name="TabAdt" Visibility="Collapsed">
                <nsl:AdtUC></nsl:AdtUC>
            </controls:TabItem>
        </controls:TabControl>
但这不起作用


有什么想法吗?

在主用户控件加载事件中,应该可以:-

((PrestatiesUC)TabPres.Content).btnReSend.Visibility = Visibility.Collapsed;
然而它闻起来很难闻。让主页这样的东西对用户控件的内部结构有如此深入的了解通常不是一个好主意

让“Prestaties”在加载事件中设置按钮可见性不是更好吗

如果不是,则创建一些由PrestatiesUC实现的接口(可能还有其他涉及的用户控件)。在加载期间,在主页中只需枚举一组选项卡,并在此接口上调用传递某个状态对象的方法。Usercontrols然后对其包含的控件的状态进行选择

如果这看起来有点过头了,那么至少向用户控件添加一个属性以隐藏按钮本身:-

 // In PrestiesUC
 public bool ReSendVisible
 {
    get { return btnReSend.Visibility == Visibility.Visible; }
    set { btnReSend.Visibility = value ? Visibility.Visible : Visibility.Collapsed; }
 }
现在,主用户控件中的代码如下所示:-

((PrestatiesUC)TabPres.Content).ReSendVisible = False;

在主用户控件加载事件中,这应该可以工作:-

((PrestatiesUC)TabPres.Content).btnReSend.Visibility = Visibility.Collapsed;
然而它闻起来很难闻。让主页这样的东西对用户控件的内部结构有如此深入的了解通常不是一个好主意

让“Prestaties”在加载事件中设置按钮可见性不是更好吗

如果不是,则创建一些由PrestatiesUC实现的接口(可能还有其他涉及的用户控件)。在加载期间,在主页中只需枚举一组选项卡,并在此接口上调用传递某个状态对象的方法。Usercontrols然后对其包含的控件的状态进行选择

如果这看起来有点过头了,那么至少向用户控件添加一个属性以隐藏按钮本身:-

 // In PrestiesUC
 public bool ReSendVisible
 {
    get { return btnReSend.Visibility == Visibility.Visible; }
    set { btnReSend.Visibility = value ? Visibility.Visible : Visibility.Collapsed; }
 }
现在,主用户控件中的代码如下所示:-

((PrestatiesUC)TabPres.Content).ReSendVisible = False;
((PrestatiesBAMUC)((PrestatiesBAMUC)TabPres.Content).TabPresBam.Content.ReSendVisible=false;成功了,非常感谢!:)((PrestatiesBAMUC)((PrestatiesBAMUC)TabPres.Content).TabPresBam.Content.ReSendVisible=false;成功了,非常感谢!:)