如何使用另一个类的listview数据?

时间:2018-06-05 03:16:10

标签: c# .net vb.net

我正在研究vb(或c#)。 例如,我有三个不同设计的类。 主设计的第1类具有从设备接收数据的功能,该功能将数据作为数组返回。 第二种设计的第2类调用第1类中的函数来存储和显示列表视图中的数据。 我想输出并使用第三个设计师中第二个设计师类的列表视图的数据。 总而言之,第1类获取数据,第2类调用第1类并将数据输出到listview。 Class 3尝试使用class 2的listview数据。 我的意图完全通过了吗?对不起,我的英语不好。 感谢您的关注! :)

1 个答案:

答案 0 :(得分:0)

您的headers应保留原始格式的数据(例如字符串列表),应使用此列表在class2上显示数据,并将此数据公开给listview

我已经创建了一个示例程序,展示了如何做到这一点!

我们可以采用三种形式class3Form1Form2

Form3(class1):这将包含我们需要在Form1 listview上显示的实际数据,我们还需要将此信息传递给Form2通过Form3

Form2

public partial class Form1 : Form { //Data which need to be shown in list view //and also need to pass to form3 (class3) public List<string> Data = new List<string>(); public Form1() { InitializeComponent(); Data.Add("item1"); Data.Add("item2"); } private void btnForm2_Click(object sender, EventArgs e) { Form2 form2 = new Form2(this); form2.Show(); } } (第2课):此类将Form2的数据保存为原始格式(此处为字符串列表),因此不必将整个Form1公开listview

你知道,Form3只需要数据,而不是对它的显示进行控制,因此最好不要让外部代码无法控制(form3)。

listview

并且最后public partial class Form2 : Form { Form1 m_form1; List<string> m_dataOfListview; //exposing row data publically so form3 can use it //note that, it is read only, so form3 can only read it. Not modify public List<string> DataOfListView { get { return m_dataOfListview; } } public Form2(Form1 form1) { InitializeComponent(); m_form1 = form1; } private void btnFetchData_Click(object sender, EventArgs e) { m_dataOfListview = m_form1.Data; foreach(string data in m_dataOfListview) listView1.Items.Add(data); } private void btnShowForm3_Click(object sender, EventArgs e) { Form3 form3 = new Form3(this); form3.Show(); } } (3级)

Form3