场景

Winform中对ZedGraph的RadioGroup进行数据源绑定,即通过代码添加选项:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100540152

Winform中自定义xml配置文件后对节点进行读取与写入:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100532137

结合上面两种效果实现打开一个新的窗体后,此窗体上的RadioGroup的选项是根据配置文件

中的配置自动生成的。

关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。
大量编程视频教程:https://space.bilibili.com/164396311

配置文件代码如下:

<?xml version="1.0" encoding="utf-8"?>
<Configure>
  <!--Y轴集合-->
  <YAxis>
    <!--第一条Y轴-->
    <YAxi>
      <no>1</no>
      <title>霸道</title>
      <color>black</color>
      <min>-1500</min>
      <max>1500</max>
    </YAxi>
    <!--第二条Y轴-->
    <YAxi>
      <no>2</no>
      <title>电压</title>
      <color>black</color>
      <min>-1500</min>
      <max>1500</max>
    </YAxi>
    <YAxi>
      <no>3</no>
      <title>badao</title>
      <color>red</color>
      <min>-1600</min>
      <max>1600</max>
    </YAxi>
  </YAxis>
</Configure>

 

实现

新建一个窗体并拖拽一个RadioGroup控件。

 

 

双击窗体进入其加载完之后的事件中

 

 private void EditY_Load(object sender, EventArgs e)
        {
            List<YAxisModel> nodeYList = new List<YAxisModel>();
            //获取可执行文件的路径-即bin目录下的debug或者release目录
            string context = System.Windows.Forms.Application.StartupPath;
            string path = String.Concat(context,@"\config\YAxisSet.xml"); 
            XmlDocument xml = new XmlDocument();
            //打开一个xml
            try
            {
                xml.Load(path);
                //读取节点数据
                XmlNodeList nodeList = xml.SelectNodes("Configure/YAxis/YAxi");
                foreach (XmlNode n in nodeList)
                {
                   YAxisModel ya = new YAxisModel();
                   ya.No = int.Parse(n.SelectSingleNode("no").InnerText);
                   ya.Title = n.SelectSingleNode("title").InnerText;
                   ya.Color = n.SelectSingleNode("color").InnerText;
                   ya.Min = double.Parse(n.SelectSingleNode("min").InnerText);
                   ya.Max = double.Parse(n.SelectSingleNode("max").InnerText);
                   nodeYList.Add(ya);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            
            //数据绑定
            foreach (YAxisModel s in nodeYList)
            {
                //每一个单元按钮对应的选线item
                RadioGroupItem item = new RadioGroupItem();
                //设置选项的value值
                item.Value = s.No;
                //设置选项的描述值 即 要显示的值
                item.Description = s.Title;
                //使选项启用
                item.Enabled = true;
                //将新增的选项添加到radiogroup的Items中
                this.radioGroup1.Properties.Items.Add(item);
            }
           //默认选中value为1的项 
            radioGroup1.EditValue = 1;
         }

 

在此之前要新建一个对象用来存取读取的配置文件的YAxi节点的属性。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ZedGraphTest.model
{
    class YAxisModel
    {
        private int no;

        public int No
        {
            get { return no; }
            set { no = value; }
        }
        private string title;

        public string Title
        {
            get { return title; }
            set { title = value; }
        }
        private string color;

        public string Color
        {
            get { return color; }
            set { color = value; }
        }
        private double min;

        public double Min
        {
            get { return min; }
            set { min = value; }
        }
        private double max;

        public double Max
        {
            get { return max; }
            set { max = value; }
        }
    }
}

 

效果

 

posted on 2019-09-04 15:56  霸道流氓  阅读(649)  评论(0编辑  收藏  举报

Live2D