我简化了一些代码,并提出了一个问题,问我该如何实现-我希望我的代码是这样的:选择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>

最佳答案

如果您使用Silverlight 5,则可以使用“祖先绑定(bind)”来实现。

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

10-08 14:07