0

ユーザーがノードをチェックして選択できるツリーコントロールがあります。選択したアイテムのみを表示するオプションをユーザーに提供したいと考えています。

エキスパンダーを考えています。ユーザーがエキスパンダーを展開すると、エキスパンダーは元のツリー コントロールを展開し、選択した項目のみを表示する別のコンテンツを表示します。

問題は、エキスパンダーがコンテンツのサイズまでしか伸びないことです。エキスパンダーが折りたたまれるまで元のツリーが見えないように、エキスパンダーを完全に伸ばしてください。

コードを以下に示します。キャンバスの外側の木が元の木です。キャンバス内のツリーは、エキスパンダーが表示することになっている読み取り専用のツリーです

<Grid Grid.Row="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
                <Grid.RowDefinitions>
                    <RowDefinition Height="33" />
                    <RowDefinition Height="*"/>
                </Grid.RowDefinitions>


                <Canvas Canvas.ZIndex="999" Grid.Row="0" HorizontalAlignment="Stretch" >
                    <telerik:RadExpander HorizontalAlignment="Right" ToolTipService.ToolTip="Show Selected Items"
                      ExpandDirection="Down" Expanded="RadExpander_Expanded" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch">
                        <telerik:RadExpander.Header>
                            <TextBlock
      Text="Selected Items"

      Width="{Binding      RelativeSource={RelativeSource AncestorType=telerik:RadExpander}, Path=ActualWidth}"   />
                        </telerik:RadExpander.Header>

                        <telerik:RadTreeView IsExpandOnSingleClickEnabled="True"  IsLoadOnDemandEnabled="False"

                                             Height="{Binding RelativeSource={RelativeSource AncestorType=telerik:RadExpander}, Path=ActualHeight}" 
                           ItemTemplate="{StaticResource SelectedElementDataOnlyTemplate}"  Margin="0,0,0,8"              
                                 ItemsSource="{Binding Path=SelectedElementsOnly}"  x:Name="ElementsTree2" >
                        </telerik:RadTreeView>

                    </telerik:RadExpander>                  

                </Canvas>
                <telerik:RadTreeView  AutomationProperties.AutomationId="ElementPicker" IsExpandOnSingleClickEnabled="True" IsVirtualizing="True"
                             ItemsOptionListType="None" Grid.Row="1" ItemTemplate="{StaticResource ElementDataTemplate}" IsRootLinesEnabled="True" Margin="0,0,0,8"
                             ItemsSource="{Binding Path=Elements}"  IsLoadOnDemandEnabled="True"    Visibility="{Binding ToggleSelectedElements,
                                                                                 Converter={StaticResource BoolToVisibilityConverter}}" LoadOnDemand="tvMain_LoadOnDemand" x:Name="ElementsTree" SelectedItem="{Binding Path=SelectedItem,Mode=TwoWay}">
                </telerik:RadTreeView>
            </Grid>
4

1 に答える 1

-2

グリッドの代わりにキャンバスを使用するとうまくいきます。

それが役に立てば幸い。

于 2013-02-25T17:25:51.513 に答える