C# 当我有一些限制时,如何保存和显示数据
很难指定一个标题 我绞尽脑汁想弄明白这个问题 我有包含“数据”、“时间”和“id”的数据包 我需要将其保存在一些数据结构中,并以某种方式在表单上仅显示数据(可能是datagridview), 但是当我点击显示的数据时,我需要能够获取rest数据包信息(时间和id) 例如: 011011010 0101 0001 第一个数据id是9,时间是2222。当我点击第一个数据(0110)时,我需要显示(比如表单上的标签)id=9和time=2222 还有一件事,数据必须像上面示例中那样显示(在数据之间有空格的行中) 编辑: 我忘了一些重要的事情。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 还有一件事,数据必须像上面示例中那样显示(在数据之间有空
如果我使用数据绑定,可以选择将网格上的数据位置(基于某些数据包信息)从某个单元格/行更改为另一个单元格/行?如果不是,可能在此处使用数据绑定不好。如果我了解您使用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”。