我试图将属性网格控件与一个类相结合,该类具有另一个类的列表/集合作为其中一个属性.让我们称它们为A类,列表将包含B类以供参考.
我想要合并一个有两个列表框的表单.左侧的列表框将包含我的程序中当前不在右侧列表中的所有B类的列表.右边的列表将包含当前与A类关联的所有B类.我希望两者之间的按钮在两个列表之间移动项目.
这很容易设计,但我不确定如何设置表单以用作集合编辑器.
谁能指出我正确的方向?
而且,我如何设置一个包含可供选择的ID列表的属性的下拉列表,如果有人可以指出我的方向来完成这个.
我使用的是.NET 2.0,因此我无法访问漂亮的Linq; 但是,我编写了一些代码,用于顺时针/逆时针对点列表进行排序.
我的问题是,如果列表尚未排序,排序工作完全正常,但如果由于某种原因列表已经排序,则排序函数会失败.
如果有人可以帮我指出正确的方向,为什么这可能是原因,我就在徘徊.
这是我对这种类型的调用:
positions.Sort(new Comparison<Position>(MapUtils.SortCornersClockwise));
Run Code Online (Sandbox Code Playgroud)
这是SortCornersClockwise函数:
public static int SortCornersClockwise( Position A, Position B)
{
// Variables to Store the atans
double aTanA, aTanB;
// Reference Point
Pixels reference = Program.main.reference;
// Fetch the atans
aTanA = Math.Atan2(A.Pixel.Y - reference.Y, A.Pixel.X - reference.X);
aTanB = Math.Atan2(B.Pixel.Y - reference.Y, B.Pixel.X - reference.X);
// Determine next point in Clockwise rotation
if (aTanA < aTanB) return -1;
else if (aTanB > aTanA) return 1;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我的参考位置是我确定点列表中每个点的相应角度的点.
现在说我有一个点列表:
15778066, …
Run Code Online (Sandbox Code Playgroud)