如何通过C#将PropertyGrid数据保存到全局数据结构中?

时间:2017-09-21 00:16:30

标签: c# propertygrid

我尝试使用PropertyGrid接口允许用户键入自己的自定义数据,稍后将保存到自己的项目文件中。我的目的是首先将这些自定义输入数据保存到全局数据结构,然后将这些数据从全局数据结构中放入项目文件中。通过C#构建PropertyGrid接口并不困难。但是我很难从界面中获取网格条目数据并将它们保存到全局数据结构中。我在本网站搜索了所有可能的答案,但对答复不太满意。我想知道是否有人可以帮助我。代码段如下所示:

[DefaultPropertyAttribute("ProjectID")]
public class AppSettings // PropertyGrid object data
{
    private string projectID = "SS001";
    private string companyName = "Compass Corp.";
    private string clientName = "Event";
    private string projectTitle = "Temp";
    private string projectNumber = "001";
    ......
}    

// PropertyGrid Dialog 
public class PropertyGridDialog : System.Windows.Forms.Form
{
    private System.Windows.Forms.PropertyGrid DialogPropertyGrid;

    public PropertyGridDialog()
    {
        DialogPropertyGrid = new PropertyGrid();
        DialogPropertyGrid.Size = new Size(540, 450);
        DialogPropertyGrid.PerformAutoScale();

        this.Controls.Add(DialogPropertyGrid);
        this.Text = "Define Project Information";

        // Create the ProjectInfo class and display it in the PropertyGrid
        AppSettings proinfo = new AppSettings();
        DialogPropertyGrid.SelectedObject = proinfo;
        DialogPropertyGrid.HelpBorderColor = SystemColors.Control;
        DialogPropertyGrid.LineColor = Color.LimeGreen;//Color.BlueViolet; 
        DialogPropertyGrid.Dock = DockStyle.Fill;
        DialogPropertyGrid.PropertyValueChanged += new PropertyValueChangedEventHandler(this.DialogPropertyGrid_PropertyValueChanged);
    }

     private void DialogPropertyGrid_PropertyValueChanged(object s, PropertyValueChangedEventArgs e)
    {
        ...;  // save data to global data structure

    }
    [STAThread]
    static void Main() 
    {
       Application.Run(new PropertyGridDialog());
    }
 }

 public sealed class GlobalArch  // define the singleton class, Global data 
{
    private static volatile GlobalArch instance;

    private static object syncRoot = new Object();

    private GlobalArch()
    {
        ....
    }
  ...
}

在上面的代码中,我尝试将PropertyGrid条目数据保存到全局数据结构,在DialogPropertyGrid_PropertyValueChanged函数下的GlobalArch,但它似乎不起作用,而且此函数一次只能保存一个项目。它无法处理来自PropertyGrid的所有项目条目数据。我想知道什么是将PropertyGrid输入数据从当前PropertyGrid类保存到全局数据结构的好方法。到目前为止,我发现的大多数示例都与如何构建PropertyGrid接口以及如何将对象数据与其关联有关。我无法找到一些示例来演示如何将输入数据从接口类保存到外部文件或全局数据结构。提前谢谢。

0 个答案:

没有答案