如何在UWP中创建只读SpreadSheet表?

时间:2018-05-20 19:08:30

标签: c# uwp

尝试向用户显示数据表,我需要使用DataSource中的数据集来排序可调整列和可调整大小的列。有一个如何在某处做这个的例子吗?还需要在selectedItem上使用doubletap函数来打开ContentDialog。

3 个答案:

答案 0 :(得分:2)

第1步:NuGet

Microsoft.Toolkit.Uwp.UI.Controls.DataGrid
https://www.nuget.org/packages/Microsoft.Toolkit.Uwp.UI.Controls.DataGrid/

第2步:XAML

<Page
    x:Class="App3.MainPage"
    ...
    xmlns:controls="using:Microsoft.Toolkit.Uwp.UI.Controls">

    <Grid>
        <controls:DataGrid 
          Name="A1DataGrid"
          GridLinesVisibility="All"
          AlternatingRowBackground="LightGray"
          CanUserReorderColumns="True" 
          CanUserResizeColumns="True"
          SelectionMode="Single"
        />
    </Grid>
</Page>

第3步:代码

...
using Microsoft.Toolkit.Uwp;

namespace App3
{
    // Table Row
    public class TStuff
    {
        public string LastName { get; set;}
        public string FirstName { get; set; }
    }

    public sealed partial class MainPage : Page
    {
        public MainPage()
        {
            this.InitializeComponent();

            A1DataGrid.ItemsSource = new List<TStuff>
            {
                new TStuff {FirstName="John",  LastName="Smith"},
                new TStuff {FirstName="Bob",   LastName="Spencer"},
                new TStuff {FirstName="Betty", LastName="Bennett"},
                new TStuff {FirstName="Max",   LastName="Harper"}
            };
        } // Constructor Method
    } // Class

}  // Namespace

如果您需要控制第2步中的列:

<controls:DataGrid 
          Name="A1DataGrid"
          GridLinesVisibility="All"
          AlternatingRowBackground="LightGray"
          CanUserReorderColumns="True" 
          CanUserResizeColumns="True"
          SelectionMode="Single"
          AutoGenerateColumns="False">  

    <controls:DataGrid.Columns>

        <controls:DataGridTextColumn 
            Header="First Name" 
            Width="SizeToCells"
            Binding="{Binding FirstName}" 
            FontSize="20" />

        <controls:DataGridTextColumn 
            Header="Last Name" 
            Width="SizeToCells"
            Binding="{Binding LastName}" 
            FontSize="20" />

    </controls:DataGrid.Columns>

</controls:DataGrid>

答案 1 :(得分:1)

UWP的DataGrid XAML控件目前处于预发布状态,DataGrid XAML control它在此版本中处于预发布状态,并且是此控件的Silverlight版本的端口,但可能值得一看。

https://www.nuget.org/packages/Microsoft.Toolkit.Uwp.UI.Controls.DataGrid/

答案 2 :(得分:0)

上述所有用例都可以由Telerik&#34; RadDataGrid&#34;处理。控制比开箱即用的网格视图更健壮。它也是开源的,所以除非需要支持,否则没有成本。

公司网站 https://www.telerik.com/universal-windows-platform-ui/grid

<强>的NuGet: https://www.nuget.org/packages/Telerik.UI.for.UniversalWindowsPlatform/

<强>文档: https://docs.telerik.com/devtools/universal-windows-platform/Introduction-uwp

<强> GitHub的 https://github.com/telerik/UI-For-UWP