C# 当我有一些限制时,如何保存和显示数据

C# 当我有一些限制时,如何保存和显示数据,c#,data-binding,data-structures,datagridview,C#,Data Binding,Data Structures,Datagridview,很难指定一个标题 我绞尽脑汁想弄明白这个问题 我有包含“数据”、“时间”和“id”的数据包 我需要将其保存在一些数据结构中,并以某种方式在表单上仅显示数据(可能是datagridview), 但是当我点击显示的数据时,我需要能够获取rest数据包信息(时间和id) 例如: 011011010 0101 0001 第一个数据id是9,时间是2222。当我点击第一个数据(0110)时,我需要显示(比如表单上的标签)id=9和time=2222 还有一件事,数据必须像上面示例中那样显示(在数据之间有空

很难指定一个标题

我绞尽脑汁想弄明白这个问题

我有包含“数据”、“时间”和“id”的数据包

我需要将其保存在一些数据结构中,并以某种方式在表单上仅显示数据(可能是datagridview), 但是当我点击显示的数据时,我需要能够获取rest数据包信息(时间和id)

例如:

011011010 0101 0001

第一个数据id是9,时间是2222。当我点击第一个数据(0110)时,我需要显示(比如表单上的标签)id=9和time=2222

还有一件事,数据必须像上面示例中那样显示(在数据之间有空格的行中)

编辑: 我忘了一些重要的事情。
如果我使用数据绑定,可以选择将网格上的数据位置(基于某些数据包信息)从某个单元格/行更改为另一个单元格/行?如果不是,可能在此处使用数据绑定不好。

如果我了解您使用DataGridView尝试执行的操作,请尝试以下操作:

// DataGridView

Databing the data source to the DataGridView (use a list of your packet for that)

---------------------------------
| DATA 1 | DATA 2 | DATA 3 | ... (Header)
---------------------------------
|  0110  |  1110  |  0101  | ... (Data)
---------------------------------
将事件处理程序添加到DataGridView CellContentClick,如下所示:

private void myDataGrid_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
    if (e.RowIndex > -1 && e.ColumnIndex > -1) // A row and cell was selected
    {
        var packet = myDataGrid.Rows[e.RowIndex].DataBoundItem as Packet;
        if (packet != null)
        {
            // Display packet information
        }
    }
}

希望有帮助。

使您的数据包成为一个类,其中数据、时间和id为私有成员,
DisplayData
为公共属性。若要从外部访问私有成员的内容,请使用具有
[Browsable(false)]
属性的属性:

public class Packet
{
    private int data, time, id;

    public string DisplayData {get {return FunctionToFormatDataToMyNeeds(data); }}
    // ...

    [Browsable(false)]
    public int Time{get{return time;}}
}

将这些对象的列表绑定到DataGridView的数据源。

您使用的是WinForms还是WPF?到目前为止,您的程序做了什么,哪里卡住了?向我们展示您已经拥有的代码!@Doc我无法展示代码。如果您愿意,我可以在pm中解释原因。我不需要确切的代码,只是想法。谢谢marco(?)。但是,如果我的列表是数据源,datagrid将如何知道只显示数据?您可以设置要在datagridview上显示的列。只需在设计时定义列,并将属性AutoGenerateColumns(我想这就是名称)设置为“false”。