Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 283|回复: 0

[默认分类] UWP 使用Telerik Grid控件

[复制链接]
  • TA的每日心情
    开心
    2021-12-13 21:45
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    发表于 2018-3-18 17:06:40 | 显示全部楼层 |阅读模式
    还是老规矩,看一下最终效果。

     
    数据是从SQLite中读取,然后绑定到DataGrid中显示的。
     
    先看一下XAML

    1. <grid:RadDataGrid Grid.Row="1" x:Name="radDataGrid"
    2.                           Background="Transparent"
    3.                           BorderThickness="1" GridLinesThickness="1"
    4.                           UserEditMode="Inline" UserSortMode="Multiple"
    5.                           SelectionUnit="Row" CanUserChooseColumns="True"
    6.                           AutoGenerateColumns="False"
    7.                           IsRightTapEnabled="True" RightTapped="radDataGrid_RightTapped"
    8.                           IsHoldingEnabled="True" Holding="radDataGrid_Holding"
    9.                           CurrentItemChanged="radDataGrid_CurrentItemChanged"
    10.                           CurrentItemChanging="radDataGrid_CurrentItemChanging">
    11.             <grid:RadDataGrid.Columns>
    12.                 <grid:DataGridTextColumn x:Name="columnId" x:Uid="columnId" Header="Id" IsVisible="False" PropertyName="Id"/>
    13.                 <grid:DataGridTextColumn x:Name="columnGuid" x:Uid="columnGuid" Header="Guid" IsVisible="False" PropertyName="Guid"/>
    14.                 <grid:DataGridTextColumn x:Name="columnFaceSetId" x:Uid="columnFaceSetId" Header="FaceSetId" IsVisible="False" PropertyName="FaceSetId"/>
    15.                 <grid:DataGridTextColumn x:Name="columnPersonId" x:Uid="columnPersonId" Header="PersonId" PropertyName="PersonId"/>
    16.                 <grid:DataGridTextColumn x:Name="columnName" x:Uid="columnName" Header="Name" PropertyName="Name"/>
    17.                 <grid:DataGridTemplateColumn x:Name="columnHead" x:Uid="columnHead" Header="Head">
    18.                     <grid:DataGridTemplateColumn.CellContentTemplate>
    19.                         <DataTemplate>
    20.                             <Ellipse Width="50" Height="50" Margin="2">
    21.                                 <Ellipse.Fill>
    22.                                     <ImageBrush ImageSource="{Binding Head}"/>
    23.                                 </Ellipse.Fill>
    24.                             </Ellipse>
    25.                         </DataTemplate>
    26.                     </grid:DataGridTemplateColumn.CellContentTemplate>
    27.                 </grid:DataGridTemplateColumn>
    28.                 <grid:DataGridTextColumn x:Name="columnSignInItemName" x:Uid="columnSignInItemName" Header="SignInItemName" PropertyName="SignInItemName"/>
    29.                 <grid:DataGridNumericalColumn x:Name="columnSignInItemTimes" x:Uid="columnSignInItemTimes" Header="SignInItemTimes" PropertyName="SignInItemTimes"/>
    30.                 <grid:DataGridNumericalColumn x:Name="columnSignInAttendanceRate" x:Uid="columnSignInAttendanceRate" Header="SignInAttendanceRate" PropertyName="SignInAttendanceRate" CellContentFormat="{}{0:P0}"/>
    31.                 <grid:DataGridDateColumn x:Name="columnSignInDateTime" x:Uid="columnSignInDateTime" Header="SignInDateTime" PropertyName="SignInDateTime"/>
    32.                 <grid:DataGridTextColumn x:Name="columnSignInState" x:Uid="columnSignInState" Header="SignInState" PropertyName="SignInState"/>
    33.             </grid:RadDataGrid.Columns>
    34.             <!--<grid:RadDataGrid.SortDescriptors>
    35.                 <core:PropertySortDescriptor PropertyName="PersonId" SortOrder="Ascending" />
    36.                 <core:PropertySortDescriptor PropertyName="SignInItemName" SortOrder="Ascending" />
    37.                 <core:PropertySortDescriptor PropertyName="SignInItemTimes" SortOrder="Ascending" />
    38.             </grid:RadDataGrid.SortDescriptors>-->
    39.             
    40.         </grid:RadDataGrid>
    复制代码

    &nbsp;
    其中,我在 <grid:RadDataGrid.Resources 中定义了右键菜单,你自己根据需要删减。


      
       属性
       说明
      
      
      
    1. Background
    复制代码
       背景色
      
      
      
    1. UserEditMode
    复制代码
       用户编辑模式,Inline是行内编辑模式,External是弹出一个浮窗编辑
      
      
      
    1. UserSortMode
    复制代码
       用户排序模式,Multiple可以允许设置多个字段排序
      
      
      
    1. SelectionUnit
    复制代码
       选择单位,Row表示选择整行,Cell则是选择一个单元格
      
      
      
    1. CanUserChooseColumns
    复制代码
       是否允许用户选择列
      
      
      
    1. AutoGenerateColumns
    复制代码
       自动生成列,我设置的false,因为我数据库有很多字段,不想都显示在上面,所以需要自己定义。如果是true,则把所有字段都显示的
      


    &nbsp;
    然后&nbsp;grid:DataGridTemplateColumn 自定义模板。
    &nbsp;
    后台C#读取数据库绑定的代码。
    public ObservableCollection<SignInSummaryData> SampleItems { get; private set; } = new ObservableCollection<SignInSummaryData>();
    &nbsp;
    代码绑定以下,然后加了一个排序,因为之前指定了&nbsp;UserSortMode 为Multiple
    &nbsp;

    1.         private async Task LoadDataAsync()
    2.         {
    3.             SampleItems.Clear();
    4.             List<UserSignInInfo> list = await SQLiteHelper.GetAllUserSignInInfoAsync();
    5.             //this.DataContext = SampleItems = new ObservableCollection<UserSignInInfo>(list);
    6.             foreach (var item in list)
    7.             {
    8.                 UserItemSQLite uis = await SQLiteHelper.GetUserAsync("Remark", item.PersonId);
    9.                 if (uis == null)
    10.                     continue;
    11.                 BitmapImage thumbBi = new BitmapImage();
    12.                 if (uis.Head0 != null)
    13.                 {
    14.                     StorageFolder storageFolder = ApplicationData.Current.TemporaryFolder;
    15.                     StorageFile thumbFile = await storageFolder.CreateFileAsync("signInHeadthumbFile.jpg", CreationCollisionOption.ReplaceExisting);
    16.                     await FileIO.WriteBytesAsync(thumbFile, uis.Head0);
    17.                     StorageItemThumbnail sit = await thumbFile.GetThumbnailAsync(ThumbnailMode.DocumentsView, 400);
    18.                     IRandomAccessStream ras = sit.AsStream().AsRandomAccessStream();
    19.                     await thumbBi.SetSourceAsync(ras);
    20.                 }
    21.                 SignInSummaryData sid = new SignInSummaryData
    22.                 {
    23.                     Id = item.Id,
    24.                     Guid = uis.Guid,
    25.                     FaceSetId = uis.FaceSetId,
    26.                     PersonId = item.PersonId,
    27.                     Name = uis.Name,
    28.                     SignInItemName = item.SignInItemName,
    29.                     SignInItemTimes = item.SignInItemTimes,
    30.                     SignInAttendanceRate = item.SignInAttendanceRate,
    31.                     SignInDateTime = Convert.ToDateTime(item.SignInDateTime),
    32.                     SignInState = item.SignInState,
    33.                     Head = thumbBi,
    34.                     Head0 = uis.Head0,
    35.                     Head1 = uis.Head1,
    36.                     Head2 = uis.Head2,
    37.                     Head3 = uis.Head3,
    38.                     Head4 = uis.Head4,
    39.                     Head5 = uis.Head5,
    40.                     Head6 = uis.Head6,
    41.                     Head7 = uis.Head7,
    42.                     Head8 = uis.Head8,
    43.                     Head9 = uis.Head9,
    44.                     Area1 = uis.Area1,
    45.                     Area2 = uis.Area2,
    46.                     Area3 = uis.Area3,
    47.                     Area4 = uis.Area4,
    48.                     Area5 = uis.Area5,
    49.                     Area6 = uis.Area6,
    50.                     Area7 = uis.Area7,
    51.                     Area8 = uis.Area8,
    52.                     Gender = uis.Gender,
    53.                     Mobile = uis.Mobile,
    54.                     Email = uis.Email,
    55.                     RemarkReal = uis.RemarkReal,
    56.                 };
    57.                 SampleItems.Add(sid);
    58.                 radDataGrid.ItemsSource = SampleItems;// = new ObservableCollection<SignInSummaryData>(list);
    59.             }
    60.             radDataGrid.SortDescriptors.Add(new PropertySortDescriptor() { PropertyName = "PersonId", SortOrder = SortOrder.Ascending });
    61.             radDataGrid.SortDescriptors.Add(new PropertySortDescriptor() { PropertyName = "SignInItemName", SortOrder = SortOrder.Ascending });
    62.             radDataGrid.SortDescriptors.Add(new PropertySortDescriptor() { PropertyName = "SignInItemTimes", SortOrder = SortOrder.Ascending });
    63.         }
    复制代码

    &nbsp;
    &nbsp;
    这样就可以实现开头的效果了。
    &nbsp;
    下一篇说以下环形图的制作。
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-5-16 15:15 , Processed in 0.371482 second(s), 46 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表