将 List<Point> 添加到 C# 中的变量?

Adding a List<Point> to a variable in C#?

我有一个接受 object value 的 Convert 方法。该值用这样的数组填充:

但是当我尝试将 value as List<Point> 存储在一个名为 point 的变量中时,point 保持 null:

public class PointsToPointsCollectionsConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {

        var points = value as List<Point>;

        if (points != null)
        {
            var pc = new PointCollection();
            foreach (var point in points)
            {
                pc.Add(point);
            }

            return pc;
        }

        else return null;
    }
}

如何将 value as <List> 赋值给变量 var points

谢谢

如果仔细查看屏幕截图,您会发现 value 变量不是点数组,而是 System.Windows.Media.PointCollection。如果您要查看 PointCollection class 的 documentation,您会发现它没有实现 List<Point>,因此您尝试将类型转换为 List<Point> 正在按预期评估为 null

您应该将类​​型转换更改为 PointCollection 实际实现的类型。鉴于您所做的只是遍历集合以复制它,IEnumerable<Point> 将是最合适的选择:

var points = value as IEnumerable<Point>;