通过单击Compact Framework中的列标题对DataGrid进行排序?

时间:2009-03-25 00:38:37

标签: windows-mobile compact-framework datagrid

。甚至可以在.Net Compact Framework中使用它吗?与Desktop Framework相比,它有各种各样的东西。

我想知道Compact Framework是否在我们的移动应用程序中通过此功能请求占了上风。

2 个答案:

答案 0 :(得分:5)

因为该网站不再可用,所以内容如下:

    public static void SortDataGrid(object sender, MouseEventArgs e)
    {
        DataGrid.HitTestInfo hitTest;
        DataTable dataTable;
        DataView dataView;
        string columnName;
        DataGrid dataGrid;

        // Use only left mouse button clicks
        if (e.Button == MouseButtons.Left)
        {
            // Set dataGrid equal to the object that called this event handler
            dataGrid = (DataGrid)sender;

            // Perform a hit test to determine where the mousedown event occurred
            hitTest = dataGrid.HitTest(e.X, e.Y);

            // If the MouseDown event occurred on a column header,
            // then perform the sorting operation.
            if (hitTest.Type == DataGrid.HitTestType.ColumnHeader)
            {
                // Get the DataTable associated with this DataGrid.
                dataTable = (DataTable)dataGrid.DataSource;

                // Get the DataView associated with the DataTable.
                dataView = dataTable.DefaultView;

                // Get the name of the column that was clicked.
                if (dataGrid.TableStyles.Count != 0)
                    columnName = dataGrid.TableStyles[0].GridColumnStyles[hitTest.Column].MappingName;
                else
                    columnName = dataTable.Columns[hitTest.Column].ColumnName;

                // If the sort property of the DataView is already the current
                // column name, sort that column in descending order.
                // Otherwise, sort on the column name.
                if (dataView.Sort == columnName)
                    dataView.Sort = columnName + " DESC";
                else
                    dataView.Sort = columnName;
            }
        }
    }

答案 1 :(得分:3)

你的意思是something like this