This question already has answers here:
Cannot convert lambda expression to type 'System.Delegate'

(3个答案)


7年前关闭。




我有一个似乎无法解决的问题,尽管这是Stackoverflow上的标准问题。

我正在尝试使用以下代码异步更新Bing Maps(请注意,这是来自旧的Silverlight项目,在WPF中似乎不起作用)
_map.Dispatcher.BeginInvoke(() =>
{
    _map.Children.Clear();
    foreach (var projectedPin in pinsToAdd.Where(pin => PointIsVisibleInMap(pin.ScreenLocation, _map)))
    {
        _map.Children.Add(projectedPin.GetElement(ClusterTemplate));
    }
});

我究竟做错了什么?

最佳答案

您必须将其显式转换为Action才能开始向System.Delegate的转换。

那是:

_map.Dispatcher.BeginInvoke((Action)(() =>
{
    _map.Children.Clear();
    foreach (var projectedPin in pinsToAdd.Where(pin => PointIsVisibleInMap(pin.ScreenLocation, _map)))
    {
        _map.Children.Add(projectedPin.GetElement(ClusterTemplate));
    }
}));

关于c# - 无法将Lambda表达式转换为 'System.Delegate'类型,因为它不是委托(delegate)类型? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14380996/

10-17 00:52