根据所选择的RadPane更改元素的可见性

本文关键字:元素 可见性 RadPane 选择 | 更新日期: 2023-09-27 18:02:04

我已经简化了一些代码和一个问题,问我将如何完成这一点-我希望我的代码是这样的,当RadPane Page1被选中时,RadPane Linked1是可见的,但不是RadPane Linked2(反之亦然)。要做到这一点,最好的方法是什么?请记住,我非常严格地遵守MVVM。

我有一个Telerik RadPane,有两个标题,都显示不同的页面:

<telerik:RadPane Header="Page 1" Name="Page1" IsSelected="{Binding IsPage1Selected, Mode=TwoWay}">
<vws:Page1 />
</telerik:RadPane>
<telerik:RadPane Header="Page2" Name="Page2" IsSelected="{Binding IsPage1Selected, Mode=TwoWay, Converter={StaticResource NotBooleanConverter}}">
<vws:Page2 />
</telerik:RadPane>

然后我有一个容器容纳两个元素,Linked1和Linked2,进一步向下的页面。

        <telerik:RadSplitContainer InitialPosition="DockedBottom">
           <telerik:RadPaneGroup>
                <telerik:RadPane Header="Linked1">
                    <vws:Linked1  />
                </telerik:RadPane>
                <telerik:RadPane Header="Linked2">
                    <vws:Linked1  />
                </telerik:RadPane>                
           </telerik:RadPaneGroup>
        </telerik:RadSplitContainer>

根据所选择的RadPane更改元素的可见性

如果你在Silverlight 5中工作,你可以使用祖先绑定来实现。

<vws:Linked1 Visibility="{Binding IsSelected, 
                RelativeSource={RelativeSource AncestorType=telerik:RadPane}, 
                Converter={StaticResource MyBoolToVisibilityConverter}}" />