如何让用户创建动态数据?

时间:2016-09-23 06:58:04

标签: c# linq

我在c#,。Net 4.5.2,WPF,Win7中工作。

我有一个A类的大清单。 A类包含50~不同的属性。 我希望用户能够从类中选择2个属性,以创建第一个属性为X值而第二个属性为Y值的图形。 我已经创建了一个创建图形的用户控件,我只需要将它连接到Point列表。

UI有2个组合框,用户可以从列表中选择X属性和Y属性。

我正在考虑做一个大的切换案例以创建每个点,但我认为必须有一种更简单的方法来为图形创建点(LINQ可能???)

1 个答案:

答案 0 :(得分:1)

这是一个例子(尚未测试)

   List<A> yourData = new List<A>();

        System.Reflection.PropertyInfo[] properties = typeof(A).GetProperties()
            .Where(x => x.PropertyType == typeof(double))         //do a sanity check if property is double
            .ToArray();


        //the user has to choose which PropertyInfo has to be taken... make a combobox or similar and use properties as binding source
        var propertyX = properties[3];
        var propertyY = properties[4];

        // create a list with the values
        List<Point> points = new List<Point>();
        foreach (A item in yourData)
        {
            Point newPoint = new Point();

            newPoint.X =(double) propertyX.GetValue(item); 
            newPoint.Y = (double)propertyY.GetValue(item);
            points.Add(newPoint);
        }

        //now do something with you extracted data and have fun