繁体   English   中英

Xamarin表单使用语句不可用

[英]Xamarin Forms Using Statements Not Available

我是Xamarin Forms和Xamarin的新手。 我可能会误解该体系结构的工作原理,或者我可能正在网上关注各种不同的示例。 我正在尝试尽可能多地使用Portable Class Library

我的nuget包是Xamarin.FormsSQLite.Net-PCL 它们安装在Droid,iOS,Windows和PCL上。 肯定是最新经过验证的最高下载量。 我正在遵循这些指南

https://github.com/xamarin/xamarin-forms-samples/tree/2f6715c5a9dc0f057279d2b2c268e872eaa483bc/Todo/PCL

https://developer.xamarin.com/guides/xamarin-forms/working-with/databases/

在SQLite接口的SQLite_Droid实现上,我没有访问Xamarin.Forms using语句或具有接口的语句,这是Native_PCL项目中的所有代码。

ISQLite.cs

using SQLite.Net;

namespace Native_PCL.DataServices
{
    interface ISQLite
    {
        SQLiteConnection GetConnection();
    }
}

DataCalls.cs

using System.Linq;
using SQLite.Net;
using Xamarin.Forms;
using Native_PCL.Data;

namespace Native_PCL.DataServices
{
    public class DataCalls
    {
        static object locker = new object();

        SQLiteConnection db;

        public DataCalls()
        {
            db = DependencyService.Get<ISQLite>().GetConnection();

            db.CreateTable<UserPreferences>();
            db.CreateTable<Orders>();
        }

        public void SubmitData(Orders order, out string update)
        {
            lock (locker)
            {
                if (!db.Table<Orders>().Any(x => x.foodName == order.foodName))
                {
                    db.Insert(order);
                    update = order.foodName;
                }
                else { update = order.foodName + " was already in your Order"; }
            }
        }
    }
}

这是Native_PCL.Droid项目中的所有代码

SQLite_Droid.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Android.App;
using Android.Content; // for some reason all of the System. and Android. are showing white. Usually unused statements are grayed out!
using Android.OS;
using Android.Runtime;
using Android.Views;
using Android.Widget;

using Native_PCL;
using Native_PCL. ; /// only .Droid is registering
using Xamarin.Forms; //Intellisense does not pick this up


namespace Native_PCL.Droid.DataImplement
{
    public class SQLite_Droid : Native_PCL.DataServices.ISQLite /// All white, Doesn't register the ISQLite as an Interface.
    {
    }
}

我已经重新创建了整个项目。 我一定在做完全错误的事情。

拔掉我的大部分头发后,我不得不思考,不可能是我。 我编译了,有几个错误。 我决定转到Android解决方案中的MainActivity.cs 事实证明,锅炉板新项目找不到App 以下是解决我的问题的步骤。

  1. 转到/Users/XXXXXX/AppData/Local/Xamarin我删除了除日志和zip之外的所有文件夹,但是我删除了zip文件夹中的压缩文件。

  2. 转到解决方案资源管理器,右键单击解决方案,然后单击“ Clean Solution

  3. 从Android项目中删除了对可Portable Class library项目的引用。
  4. 编译了基础Portable Class library项目。
  5. 重新添加对Android项目的引用。

这个故事的教训是,如果您遇到过智能感知问题而没有选择应有的参考文献,请按照步骤2、3、4、5进行操作。 并且由于它是Xamarin,并且涉及仿真器和交叉兼容性,因此请执行步骤1。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM