C#桌面应用程序(数据绑定)

时间:2011-02-11 22:45:42

标签: c# file data-binding desktop-application

我想创建一个简单的c#桌面应用程序,它将用户输入的记录存储/检索到文本文件中。假设每条记录有三个字段作为组名,记录标题和记录消息。所以基本上文本文件有多个记录,每个记录都用一个组进行分类,如下所示。

Group A

Header title 1A  message 1A
Header title 2A  message 2A
Header title 3A  message 3A
.......          ....... 
.......          .......
.......          .......
Group B

Header title 1B  message 1B
Header title 2B  message 2B
Header title 3B  message 3B
.......          ....... 
.......          .......
.......          .......
Group C

Header title 1C  message 1C
Header title 2C  message 2C
Header title 3C  message 3C
.......          ....... 
.......          .......
.......          .......

Group D

.......          .......
.......          .......

desktopm窗口将有3列,第1列应列出所有组,第2列将列出所选组中的所有记录(来自第1列),第3列显示在第2列中选择的详细单记录。请提供您如何实施此建议的建议?任何样本和教程都是高度适用的。

2 个答案:

答案 0 :(得分:1)

您最好使用XML。

C#非常好XML serialization,它允许您将XML转换为c#对象,反之亦然(无需进行任何手动解析)

此外,这个问题有点过于笼统。您最好尝试自己处理应用程序,然后回过头来解决具体问题。

答案 1 :(得分:0)

您需要三个基本组件:

  1. 您的数据模型。这可能包括Group类和Record类,其中Group包含类似GetRecords()方法或Records属性的内容(返回{{1} ,用于数据绑定)。
  2. 一个解析器,它将读取文件的行并构建这些IList<Record>个对象的集合 - 可能采用Group或您自己的Dictionary<string, Group>实现的形式。
  3. 一个GUI(duh),有两个ListBoxes和一些个人GroupCollection的自定义显示控件。
  4. 对于第一个ListBox,您可能会将Record属性设置为DataSource个对象的集合(如果我没有弄错的话,这将需要实现Group。)

    处理第一个ListBox的IList事件,并将第二个ListBox上的SelectedIndexChanged设置为所选DataSource的结果GetRecords() / Records

    处理秒<{em> Group的{​​{1}}事件,并在自定义控件中显示所选记录的详细信息。

    无论如何,这就是我接近它的方式。