WP7.1:TreeeView:ExpanderView - 5个级别?

时间:2013-12-04 18:27:09

标签: windows-phone-7 treeview

我们正在尝试构建树视图结构(根据项目要求,它是必需的)。我们正在努力建立的是

  

A

     

---的 A1

     

------- A11

     

---------- A111

     

-------------------- LastItem

     

-------------------- LastItem

     

------- A12

     

---的 A2

     

     

---的 B1

     

-------------------- LastItem

     

---的 B2

     

------的 B21

     

---------的 B211

     

------的 B22

     

---的 B3

     

C

     

---- LastItem

     

---- LastItem

在stackoverflow上搜索大多数人建议使用longlistview,因为没有树视图。 Expanderview完全符合我们的目的

但是当我们尝试添加Level4以外的项目时 XAML给出了以下错误:

  

ArgumentException:值不在预期范围内。在   MS.Internal.XcpImports.CheckHResult(UInt32 hr)at   MS.Internal.XcpImports.SetValue(IManagedPeerBase obj,   DependencyProperty属性,Double d)at   System.Windows.DependencyObject.SetValue(DependencyProperty属性,   双d)at   Microsoft.Phone.Controls.ExpanderView.OnSizeChanged(Object sender,   SizeChangedEventArgs e)at   System.Windows.FrameworkElement.OnSizeChanged(Object sender,   SizeChangedEventArgs e)在MS.Internal.JoltHelper.RaiseEvent(IntPtr)   TARG

  • (检查拼写错误,名称 - everythign是唯一的)。

任何建议都将不胜感激!!!!有更好的控制可用吗?

示例XML(查找ERR。如果我们删除ERR工作正常)

    <ScrollViewer>
    <Grid x:Name="ContentPanel" Grid.Row="1" Margin="10">
        <StackPanel x:Name="sp1">
            <toolkit:ExpanderView x:Name="A1" Header="A1" FontSize="40" >
                <toolkit:ExpanderView.Items>
                    <toolkit:ExpanderView x:Name="A11" Header="A11" FontSize="40" >
                        <toolkit:ExpanderView.Items>
                            <Button FontSize="20" x:Name="A111" Content="A111" />
                            <Button FontSize="20" x:Name="A112" Content="A112"/>
                            <Button FontSize="20" x:Name="A113" Content="A113"/>
                        </toolkit:ExpanderView.Items>
                    </toolkit:ExpanderView>
                    <toolkit:ExpanderView x:Name="A21" Header="A21" FontSize="40" >
                            <toolkit:ExpanderView.Items>
                                <toolkit:ExpanderView x:Name="A211" Header="A212" FontSize="40" >
                                    <toolkit:ExpanderView.Items>
                                        <toolkit:ExpanderView x:Name="ERR" Header="ERR" FontSize="40" >
                                        </toolkit:ExpanderView>
                                    </toolkit:ExpanderView.Items>

                                </toolkit:ExpanderView>
                                <toolkit:ExpanderView x:Name="A212" Header="A212" FontSize="40" >
                                </toolkit:ExpanderView>

                            </toolkit:ExpanderView.Items>
                        </toolkit:ExpanderView>
                </toolkit:ExpanderView.Items>

            </toolkit:ExpanderView>

            <toolkit:ExpanderView x:Name="A2" Header="A2" FontSize="40" >
               <toolkit:ExpanderView.Items>
                    <toolkit:ExpanderView x:Name="A21" Header="A21" FontSize="40" >
                        <toolkit:ExpanderView.Items>
                            <RadioButton x:Name="rdbtn_1" FontSize="20" Content="TEST1"     Margin="0,-5" />
                        </toolkit:ExpanderView.Items>
                    </toolkit:ExpanderView>
                </toolkit:ExpanderView.Items>
            </toolkit:ExpanderView>

            <toolkit:ExpanderView x:Name="A3" Header="A3" FontSize="40" />

                <TextBlock x:Name="txt_result" Margin="0,20,0,0" TextWrapping="Wrap" FontSize="20"/>
        </StackPanel>        
    </Grid>
    </ScrollViewer>
</Grid>

1 个答案:

答案 0 :(得分:2)

通过设置包含expandview控件项宽度可以最好地缓解此问题。不知何故,工具包库中的逻辑尝试将宽度设置为负数,框架防止负宽度。

enter image description here

注意下面代码中第3级扩展器视图中的“Width =”200“

修改后的代码应该有效

<Grid x:Name="LayoutRoot" Background="Transparent">
    <Grid.RowDefinitions>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>

    <!--TitlePanel contains the name of the application and page title-->


    <!--ContentPanel - place additional content here-->
    <ScrollViewer>
        <Grid x:Name="ContentPanel" Grid.Row="1" Margin="10">
            <StackPanel x:Name="sp1">
                <toolkit:ExpanderView x:Name="A1" Header="A1" FontSize="40" >
                    <toolkit:ExpanderView.Items>
                        <toolkit:ExpanderView x:Name="A11" Header="A11" FontSize="40" >
                            <toolkit:ExpanderView.Items>
                                <Button FontSize="20" x:Name="A111" Content="A111" />
                                <Button FontSize="20" x:Name="A112" Content="A112"/>
                                <Button FontSize="20" x:Name="A113" Content="A113"/>
                            </toolkit:ExpanderView.Items>
                        </toolkit:ExpanderView>
                        <toolkit:ExpanderView x:Name="A221" Header="A21" FontSize="40" >
                            <toolkit:ExpanderView.Items>
                                <toolkit:ExpanderView x:Name="A211" Header="A212" FontSize="40" Width="200">
                                    <toolkit:ExpanderView.Items>
                                        <toolkit:ExpanderView x:Name="ERR" Header="ERR" FontSize="40" >
                                        </toolkit:ExpanderView>
                                    </toolkit:ExpanderView.Items>

                                </toolkit:ExpanderView>
                                <toolkit:ExpanderView x:Name="A212" Header="A212" FontSize="40" Width="200" >
                                </toolkit:ExpanderView>

                            </toolkit:ExpanderView.Items>
                        </toolkit:ExpanderView>
                    </toolkit:ExpanderView.Items>

                </toolkit:ExpanderView>

                <toolkit:ExpanderView x:Name="A2" Header="A2" FontSize="40" >
                    <toolkit:ExpanderView.Items>
                        <toolkit:ExpanderView x:Name="A21" Header="A21" FontSize="40" >
                            <toolkit:ExpanderView.Items>
                                <RadioButton x:Name="rdbtn_1" FontSize="20" Content="TEST1"     Margin="0,-5" />
                            </toolkit:ExpanderView.Items>
                        </toolkit:ExpanderView>
                    </toolkit:ExpanderView.Items>
                </toolkit:ExpanderView>

                <toolkit:ExpanderView x:Name="A3" Header="A3" FontSize="40" />

                <TextBlock x:Name="txt_result" Margin="0,20,0,0" TextWrapping="Wrap" FontSize="20"/>
            </StackPanel>
        </Grid>
    </ScrollViewer>
</Grid>