动态硬编码复选框,字典到.cs

时间:2011-03-17 07:21:41

标签: c# wpf

这个问题与编程方法有关。我不久前开始在c#中开发wpf,需要一些帮助。基本上现在我有2个文件 - 1.Text文件调用它(Textfile)和2. Xml文件。

我的计划方法如下:

  1. 运行程序(此程序包含硬编码复选框)
  2. 进行xml解析。我有一个字典,其值和键是硬编码的。如果xml的属性的后代不包含这些值,则会在程序的stackpanel中创建新的复选框。
  3. 执行“文本文件”解析。使用前面讨论的“Textfile”,如果我在文本文件中有某些字符串,我将选中或取消选中硬编码复选框
  4. 构建按钮事件。然后用户将根据需要手动编辑(选中或取消选中他们喜欢的复选框)并单击“构建”按钮,此事件将写入“Textfile”的新副本。如果选中了复选框,则会写入单个字符串。
  5. 因此,让我们将xml文件中找到的新目标称为“Exec_newtarget”。所以我需要做的是:

    1. 运行程序
    2. 执行xml解析。与字典值和键进行比较,如果值“Exec_newtarget”不存在,则会将其硬编码到.cs文件中的字典对象中,并在.cs文件中创建“Exec_newtarget”复选框
    3. 执行“文本文件”解析。这将选中或取消选中硬编码复选框
    4. 构建按钮事件。将写入新的“Textfile”,如果选中“Exec_newtarget”复选框,则“Exec_newtarget”将作为字符串写入“Textfile”
    5. 再次运行程序
    6. 执行xml解析(检查新目标,例如“Exec_nexttarget”)
    7. 执行Texfile解析。这次是因为“Exec_newtarget”是先前编写的(如在4.中),将检查“Exec_newtarget”
    8. 构建按钮事件写入新的“文本文件” ... ... 冲洗并重复
    9. 所以我的问题是,是否可以将字典值,密钥和复选框动态硬编码到.cs文件中?如果是这样我应该怎么做。或者我的程序有更好的工作方式吗?

      编辑1: 在这里,我将向您解释为什么我这样做。

      1. 我的项目是自动化手动流程。以前用户必须转到此“文本文件”并选择他们需要的适当目标并手动编辑。例如,如果他们需要“Exec_newtarget”,他们将转到“#Exec_newtarget”并删除“#”。有40多个这样的字符串需要编辑,单独完成它可能很麻烦。
      2. 主要过程是运行bat文件。执行bat文件时,在“Textfile”中找到的字符串(基本上可以在xml文件中找到)然后根据需要执行处理。此xml文件不断使用新属性和后代进行更新。
      3. 为了维护.ml文件的结构以及简化操作,自动生成“Textfile”的副本,而不是手动将新字符串添加到“Textfile”中

2 个答案:

答案 0 :(得分:1)

听起来你的方法有点过于复杂。但这可能只是我的理解。

首先,看看DataBinding in WPF。这会从方程式中删除GUI,因为GUI会根据您绑定的数据自动更新(非常好的东西)。

其次,您希望控制字典/数据结构。如果我正确地阅读您的问题,您将首先将所有XML加载到字典中,然后您可以将任何缺少的“硬编码”值添加到字典中(可能具有空值?)。可以从您在应用中包含的单独的.txt文件中读取这些丢失的密钥。或者甚至是App.Config中的昏迷分隔设置。 (避免硬编码)

答案 1 :(得分:0)

据我所知,您希望拥有自我更改的代码。一般来说,这是可能的。但是,它很复杂,并且对于您的情况而言,这不是创建一些复选框的最佳方式。

你可以做的是让你的程序包含一个复选框列表。可以从您的xml文件中解析此列表(您只需要一个文件)。在此文件中,您可以存储复选框名称以及值。

使用这样的解决方案的优点是,您只需要一个外部文件而不是两个,而不需要自动更改代码。