消除Lightswitch中的循环递归

本文关键字:循环 递归 Lightswitch 消除 | 更新日期: 2023-09-27 18:24:55

我是光开关开发的新手,到目前为止我非常不喜欢它。我有以下问题:

我有一张名为"员工"的桌子,每个员工都有一个老板,也是一名员工。我想向用户提供一个不允许任何循环递归的老板选择,所以例如,如果我想选择人a的老板,那么如果人a是人B的老板,就不会显示人B。

我可以写所有的代码来做这件事,我的问题是我不知道如何从一个方法中填充某种控件,有人能给我一个循序渐进的指南吗。

根据"Mikko Viitala"的要求

我不介意将控件绑定到一个动态生成的列表,该列表的内容从员工的表中加载,并使用以下函数检查其有效性:

// Checks for circular recursion, retuns true if safe.
public static bool CheckForCircularRecursion(Employee emp)
{
    if (emp.Boss != null && emp.Id == emp.Boss.Id)
        return false;
    return CheckForCircularRecursion_Inner(emp, emp);
}
// Returns true if safe
private static bool CheckForCircularRecursion_Inner(Employee original, Employee emp)
{
    if (emp.Boss == null)
        return true;
    else if (emp.Boss == original)
        return false;
    else
        return CheckForCircularRecursion_Inner(original, emp.Boss);
}

消除Lightswitch中的循环递归

Morgoth-尽管你说你不喜欢LightSwitch时伤透了我的心:(-我会尝试并希望改变你的想法。

您是否正试图通过某种屏幕方法以编程方式填充某些Silverlight控件?这是自定义控件吗?如果是的话,你读过这样的文章吗:http://msdn.microsoft.com/en-us/library/gg674919.aspx

Beth Massi有一些关于填充列表的好文章http://blogs.msdn.com/b/bethmassi/archive/2011/09/15/filtering-lookup-lists-with-large-amounts-of-data-on-data-entry-screens.aspx

您应该能够从与员工无关的列表中筛选我们的数据(我相信Beth在文章中也这样做了)