我有这个功能作为遍历我的树视图的解决方案:
protected void PerformActionOnNodesRecursive(TreeViewNodeCollection nodes, Action<TreeViewNode> action)
{
foreach (TreeViewNode node in nodes)
{
action(node);
if (node.Nodes.Count > 0)
PerformActionOnNodesRecursive(node.Nodes, action);
}
}
但我无法理解的是如何实现我的操作或每个节点所需的操作。
任何人都可以告诉我如何使用此操作对象并定义自定义操作吗?
答案 0 :(得分:4)
你打电话给Action
就像这样:
PerformActionOnNodesRecursive(node.Nodes, (node) => node.SomeProperty = "123");
或者:
PerformActionOnNodesRecursive(node.Nodes, (node) =>
{
// you can place multiple statements here.
});
或者:
PerformActionOnNodesRecursive(node.Nodes, (node) => CallSomeOtherMethod(node));
有关lambda表达式的一些有用信息可以在MSDN找到。
答案 1 :(得分:0)
您可以按如下方式创建Action
:
PerformActionOnNodedRecursive(node, new Action(t => t.Text = "Test"));
现在每个子节点和节点本身都将收到文本“测试”