92 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			92 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System;
 | |
| using System.Collections.Generic;
 | |
| using System.ComponentModel;
 | |
| using System.Data;
 | |
| using System.Drawing;
 | |
| using System.Linq;
 | |
| using System.Text;
 | |
| using System.Windows.Forms;
 | |
| 
 | |
| namespace Project.Dialog
 | |
| {
 | |
|     public partial class fDataBufferSIDRef : Form
 | |
|     {
 | |
|         Boolean useMonitor = false;
 | |
|         public fDataBufferSIDRef()
 | |
|         {
 | |
|             InitializeComponent();
 | |
|             this.lvSID.Items.Clear();
 | |
|             var list = PUB.Result.SIDReference.Items;
 | |
|             foreach (var item in list)
 | |
|             {
 | |
|                 var lv = this.lvSID.Items.Add(item.sid, string.Format("[{0}] {1}", lvSID.Items.Count + 1, item.sid), 0);    //sid
 | |
|                 lv.SubItems.Add(item.kpc.ToString()); //count
 | |
|                 lv.SubItems.Add(item.unit);
 | |
|             }
 | |
|             PUB.Result.SIDReference.PropertyChanged += sidreflist_PropertyChanged;
 | |
|             useMonitor = true;
 | |
|         }
 | |
| 
 | |
|         public fDataBufferSIDRef(List<Class.SIDDataRef> items)
 | |
|         {
 | |
|             InitializeComponent();
 | |
|             this.lvSID.Items.Clear();
 | |
|             foreach (var item in items)
 | |
|             {
 | |
|                 var lv = this.lvSID.Items.Add(item.sid, string.Format("[{0}] {1}", lvSID.Items.Count + 1, item.sid), 0);    //sid
 | |
|                 lv.SubItems.Add(item.kpc.ToString()); //count
 | |
|                 lv.SubItems.Add(item.unit);
 | |
|             }
 | |
|         }
 | |
|         void fDataBufferSID_FormClosed(object sender, FormClosedEventArgs e)
 | |
|         {
 | |
|             if (useMonitor)
 | |
|                 PUB.Result.SIDReference.PropertyChanged -= sidreflist_PropertyChanged;
 | |
|         }
 | |
| 
 | |
|         private void fDataBuffer_Load(object sender, EventArgs e)
 | |
|         {
 | |
|             this.FormClosed += fDataBufferSID_FormClosed;
 | |
| 
 | |
|         }
 | |
| 
 | |
|         void sidreflist_PropertyChanged(object sender, PropertyChangedEventArgs e)
 | |
|         {
 | |
|             if (this.InvokeRequired)
 | |
|             {
 | |
|                 var p = new PropertyChangedEventArgs(e.PropertyName);
 | |
|                 this.BeginInvoke(new PropertyChangedEventHandler(sidreflist_PropertyChanged), new object[] { sender, p });
 | |
|                 return;
 | |
|             }
 | |
|             var pname = e.PropertyName.Split(':');
 | |
|             if (pname[0].ToLower() == "add")
 | |
|             {
 | |
|                 var sid = pname[1];
 | |
|                 var item = PUB.Result.SIDReference.Get(pname[1]);
 | |
|                 var lv = this.lvSID.Items.Add(sid, string.Format("[{0}] {1}", lvSID.Items.Count + 1, sid), 0);
 | |
|                 lv.SubItems.Add(item.kpc.ToString());
 | |
|                 lv.SubItems.Add(item.unit);//
 | |
|                 lv.EnsureVisible();
 | |
|             }
 | |
|             else if (pname[0].ToLower() == "clear")
 | |
|             {
 | |
|                 this.lvSID.Items.Clear();
 | |
|             }
 | |
|             else if (pname[0].ToLower() == "set")
 | |
|             {
 | |
|                 var sid = pname[1];
 | |
|                 var cnt = PUB.Result.SIDReference.Get(sid);
 | |
|                 var items = this.lvSID.Items.Find(sid, false);
 | |
|                 if (items != null && items.Length > 0)
 | |
|                 {
 | |
|                     foreach (var item in items)
 | |
|                     {
 | |
|                         item.SubItems[1].Text = cnt.ToString();
 | |
|                     }
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
| 
 | |
|     }
 | |
| }
 | 
