GeoViewInputEventArgs e.Location的作用类似于null,但我可以通过在Watch中钻取它来看到它不是null

问题描述 投票:0回答:1

我有一个奇怪而令人沮丧的问题。我有一个事件是这样做的:

        private async void EsriMap_GeoViewTapped(object sender, GeoViewInputEventArgs e)
    {
            if(e.Location == null)
            {
               // The code always goes into this if statement
               // it is acting like a null
                bool b = true;
            }
    }

我的xaml代码看起来像这样:

        <esri:MapView x:Name="SiteMapView"
      Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="5"
      Map="{ Binding Map }"
      GeoViewTapped="EsriMap_GeoViewTapped"
      GraphicsOverlays="{Binding GraphicsOverlays}" />

但是,如果我查看手表并键入“e”然后钻入其中然后钻入位置,我会看到我期待的属性。

如果我在手表中输入'e.Location',则表的输出为空(不说空)。另外,当我这样做时,我注意到在输出窗口中我得到了重复的异常文本,重复了10次:

System.ArgumentException:字段'k__BackingField'对此类型无效。在E:\ A_work \ 785 \ s \ external \ NRefactory \ ICSharpCode.NRefactory.CSharp \ Ast \ Expressions \ MemberReferenceExpression.cs中的Mono.Debugger.Soft.ObjectMirror.GetValues(IList1 fields) in E:\A\_work\785\s\external\debugger-libs\Mono.Debugger.Soft\Mono.Debugger.Soft\ObjectMirror.cs:line 93 at Mono.Debugger.Soft.ObjectMirror.GetValue(FieldInfoMirror field) in E:\A\_work\785\s\external\debugger-libs\Mono.Debugger.Soft\Mono.Debugger.Soft\ObjectMirror.cs:line 74 at Mono.Debugging.Soft.FieldValueReference.get_Value() in E:\A\_work\785\s\external\debugger-libs\Mono.Debugging.Soft\FieldValueReference.cs:line 129 at Mono.Debugging.Evaluation.ValueReference.GetChild(String name, EvaluationOptions options) in E:\A\_work\785\s\external\debugger-libs\Mono.Debugging\Mono.Debugging.Evaluation\ValueReference.cs:line 274 at Mono.Debugging.Evaluation.NRefactoryExpressionEvaluatorVisitor.VisitMemberReferenceExpression(MemberReferenceExpression memberReferenceExpression) in E:\A\_work\785\s\external\debugger-libs\Mono.Debugging\Mono.Debugging.Evaluation\NRefactoryExpressionEvaluatorVisitor.cs:line 1042 at ICSharpCode.NRefactory.CSharp.MemberReferenceExpression.AcceptVisitor[T](IAstVisitor1 visitor):Mono.Debugging.Evaluation第105行.NRefactoryExpressionEvaluator.Evaluate(EvaluationContext ctx,String expression,Object expectedType)在E:\ A_work \ 785 \ s \ external \ debugger-libs \ Mono.Debugging \ Mono.Debugging.Evaluation \ NRefactoryExpressionEvaluator.cs:第82行Mono.Debugging E:\ A_work \ 785 \ s \ external \ debugger-libs \ Mono.Debugging \ Mono.Debugging.Evaluation \ ObjectValueAdaptor.cs:line 1411中的.Evaluation.ObjectValueAdaptor.GetExpressionValue(EvaluationContext ctx,String exp)

我也在另一个项目中使用了类似的代码,我没有发生这种奇怪的事情。有关正在发生的事情以及如何解决问题的任何想法?

c# xamarin xamarin.forms esri .net-standard-2.0
1个回答
0
投票

在与另一位开发人员讨论此问题大约两天后,我发现我使用的ESRI库在两个不同的命名空间中具有类GeoViewInputEventArgs。这些类必须相同或非常接近相同。因此,切换到正确的命名空间后,它现在可以按预期工作。我真的不知道为什么有人会在他们的库中使用相同的类名。

© www.soinside.com 2019 - 2024. All rights reserved.