为了账号安全,请及时绑定邮箱和手机立即绑定

未处理的异常:System.InvalidCastException:指定的强制转换无效。

未处理的异常:System.InvalidCastException:指定的强制转换无效。

C#
郎朗坤 2021-10-24 19:57:45
我在 ListView 中实现了一个 SwitchCell;我希望能够访问 SwitchCell 的属性:On 和 text。我希望能够获取和设置 SwitchCell 的 OnProperty 以从 xaml.cs 类中更改/读取 Switch 状态。当我运行代码时,我收到未处理的异常错误。我对 Xamarin 和 C# 都很陌生,因此任何解决问题的帮助/建议/示例都将不胜感激。异常发生在var selectedItem = ((SwitchCell)sender).BindingContext as Relays; 在 SwitchCell.xaml.cs 中。我的 Relay.cs 类如下:using System;using System.Collections.Generic;using System.Text;namespace Socket.Models{    public class Relays    {      public Boolean isOn { get; set; }       // Set the state of the                                                 switch       public string State { get; set; }       // Get the state of the                                      switch based on the isOn property      public string Name { get; set; }        // Set the name of the                                                relay in the list      }   }我的 SwitchCell.xaml 如下:  <?xml version="1.0" encoding="utf-8" ?>      <ContentPage xmlns="http://xamarin.com/schemas/2014/forms"         xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"         x:Class="Socket.SwitchCell"         Title="Relay Control Page"><ContentPage.Content>    <StackLayout Padding="10,0,0,0">        <ListView x:Name="lstView" SelectionMode="None">            <ListView.ItemTemplate>                <DataTemplate>                    <SwitchCell x:Name="Sw1" Text="{Binding Name}" On="                              {Binding isOn, Mode=TwoWay}"                                 OnChanged="SwitchCell_OnChanged_2"/>                </DataTemplate>            </ListView.ItemTemplate>        </ListView>        </StackLayout>    </ContentPage.Content></ContentPage>这是我在 VS 2017 中遇到的错误:未处理的异常:System.InvalidCastException:指定的强制转换无效。发生了。我不确定这是否有用,但这是我从调用堆栈中得到的:位于 C:\Users\ryno\Desktop\Xamarin\Socket\Socket\Socket\SwitchCell.xaml.cs 的 Socket.SwitchCell.SwitchCell_OnChanged_2 中的 0x1:42,13。我不知道我做错了什么。任何帮助将不胜感激。谢谢。
查看完整描述

2 回答

?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

只有似乎发生的演员在这里: var selectedItem = ((SwitchCell)sender).BindingContext as Relays;

检查是否sender确实是SwitchCell.


查看完整回答
反对 回复 2021-10-24
?
FFIVE

TA贡献1797条经验 获得超6个赞

原来这是我的名字。感谢您对@Gerald Versluis 的所有帮助以及@Benl 的建议。


查看完整回答
反对 回复 2021-10-24
  • 2 回答
  • 0 关注
  • 490 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信