我正在创建Windows桌面应用程序。 我有一个TreeView对象,我将所有treenodes属性存储到一个json文件中。 我想在TreeNode对象中嵌入“选择”处理程序。 因此,我创建了一个ItemNode对象,该对象使用SelectedHandler属性扩展了TreeNode对象。
代码如下:
using System;
using System.Windows.Forms;
namespace UITesting
{
internal class ItemNode:TreeNode
{
public Action SelectedHandler { get; set; }
}
}
但是,我不知道如何在json文件中存储“选择”处理程序方法。 如何在json文件中存储“选择”处理程序方法?
当前,我正在使用以下代码从json文件中反序列化对象。
JavaScriptSerializer jss;
ItemNode itemNode=null;
using (StreamReader r = new StreamReader("ItemNode.json"))
{
string json = r.ReadToEnd();
itemNode = jss.Deserialize<ItemNode>(json);
}
这是我的json文件(即ItemNode.json)
{
"Text": "Administration",
"Name": "Administration",
"ImageIndex": "2",
"SelectedImageIndex": "2",
"SelectedHandler": "test()"
}
我的目标是在treeview afterselect事件处理程序中:
private void Tree1_AfterSelect(object sender, TreeViewEventArgs e)
{
ItemNode node = (ItemNode)e.Node;
node.SelectedHandler(); //I would appreciate if it can support parameter
}