zoukankan      html  css  js  c++  java
  • silverlight使用DataGrid实现类似Treelistview效果


                    折叠效果                                                                                                                                                             展开效果

    目标实现上面的效果:

    知识准备:使用DataGrid的RowDetail显示和隐藏行的展开和折叠效果.

    RowDetail 默认显示方式有三种:一、Collapsed 及不显示;二、Visible 及一直显示;三、VisibleWhenSelected 及选中行时显示

    其中VisibleWhenSelected 模式会在选中一行时显示相应的详细信息,但是当更改选中行时,之前选中行的详细信息就会隐藏,而且选中一行后也无法隐藏详细信息

    (SelectionModel 设置为 Extended ,RowDetailsVisibilityMode 设置为 VisibleWhenSelected ,按住 Ctrl 键选中多行时也会同时显示多行的详细信息,但是当松开 Ctrl 键再选择某一行时,其他行的详细信息就会自动隐藏) .所以该模式不适合在此使用.

    xaml代码主要部分

    View Code
    <sdk:DataGrid x:Name="bidlistGrid" AutoGenerateColumns="False" Height="268" HorizontalAlignment="Left" Margin="12,20,0,0"  VerticalAlignment="Top" Width="376"  
    <span style="color:#FF6666;">RowDetailsVisibilityMode="Collapsed"</span> SelectionMode="Single" ItemsSource="{Binding}" <span style="color:#FF6666;">CanUserReorderColumns="False" CanUserSortColumns="False"</span>>
    <span style="color:#FF6666;"><sdk:DataGrid.RowDetailsTemplate></span>
    <span style="color:#FF6666;"> <DataTemplate>
    <sdk:DataGrid x:Name="lidlistGrid" AutoGenerateColumns="False" Width="350" HorizontalAlignment="Center" ItemsSource="{Binding LidList}">
    <sdk:DataGrid.Columns>
    <sdk:DataGridTextColumn Header="序号" Binding="{Binding Index}"/>
    <sdk:DataGridTextColumn Header="素材ID" Binding="{Binding Clipid}"/>
    <sdk:DataGridTextColumn Header="素材名称" Binding="{Binding ClipName}"/>
    </sdk:DataGrid.Columns>
    </sdk:DataGrid>
    </DataTemplate>
    </sdk:DataGrid.RowDetailsTemplate></span>
    <sdk:DataGrid.Columns>
    <sdk:DataGridTemplateColumn Header="序号">
    <sdk:DataGridTemplateColumn.CellTemplate>
    <DataTemplate>
    <StackPanel>
    <Button Height="20" Width="20" Content="{Binding Index}" Click="Button_Click"/>
    </StackPanel>

    </DataTemplate>
    </sdk:DataGridTemplateColumn.CellTemplate>
    </sdk:DataGridTemplateColumn>
    <sdk:DataGridTextColumn Header="节目名" Binding="{Binding BidName}"/>
    </sdk:DataGrid.Columns>
    </sdk:DataGrid>

    效果美化:

    将button替换为Image,设置折叠展开时的图标

  • 相关阅读:
    在国内时,更新ADT时需要配置的
    mantis增加密码修改
    http://182.92.241.20/mypro/login 偶的点金项目细化分包管理平台即将上线!!
    bootstrap菜单完美解决---原创
    PB常用日期
    ctrl+shift+del 清理火狐缓存,解决页面显示错乱问题
    Kylin上chromium不能用flash的解决命令
    正确的SVN导入代码命令
    GNU :6.47 Function Names as Strings
    std::advance 给迭代器增加指定偏移量
  • 原文地址:https://www.cnblogs.com/neking/p/2428163.html
Copyright © 2011-2022 走看看