gpt4 book ai didi

c# - 在另一个 IList 数据模型中存储 Array 或 IList

转载 作者:行者123 更新时间:2023-12-03 10:31:58 27 4
gpt4 key购买 nike

我似乎找不到为我的 MVVM Xamarin 表单应用程序构建和使用数据的最佳实践或最佳机制。这可能是对如何解决问题的简单误解,但我不确定。

我曾尝试使用 IEnumerable、IList 和一个简单的数组来处理多维数据(绑定(bind)?),但我对 MVVM 还是很陌生,所以我可能会遇到这个错误。

这适用于 Xamarin.Forms Android 应用程序,因此使用 MySQL 类型的数据绑定(bind)不起作用(因为您无法存储在数据库中)。所以使用这些数据类是正确的方法,但我不知道如何构造关系数据。
每个腰带可以有许多视频、按钮和其他内容。

我浏览了有关此的 Xamarin 示例,但没有一个解决应用程序附带的关系数据。

// Trying to use an aray
public IList<BeltContent> BeltContents { get; private set; }
public BeltData()
{
// Bringing it all together
BeltContents = new List<BeltContent>();

BeltContents.Add(new BeltContent
{
BeltName = "White",
VideoContent = {
"https://url-to-my-video01",
"https://url-to-my-video01" }
});

}


//Trying to use an IList to initialize inside

public IList<BeltContent> BeltContents { get; private set; }
public Ilist<VideoContent> VideoContents {get; private set; }
public BeltData()
{
// Bringing it all together
BeltContents = new List<BeltContent>();
VideoContents = new List<VideoContent>();

BeltContents.Add(new BeltContent
{
BeltName = "White",
VideoContent = VideoContents.Add(new VideoContent
{
VideoName = "SomeName",
VideoUri = "Https://some-url-to-video"
},
{
//etc
}
});

}

我也有这些的数据模型
注意:我尝试过的其他路线的 BeltContent 评论。
添加为注释以合并代码
// The Data Model for videos (note they all follow this pattern)
public class VideoContent
{
public string VideoName { get; set; }

public string VideoUri { get; set; }
}


// Full content for the data model
public class BeltContent
{

public string BeltName { get; set; }

public string BeltDescription { get; set; }

// public IEnumerable<VideoContent> VideoContent {get; set;}
// public string[] VideoContent {get; set; }
// public IList<VideoContent> VideoContent {get; set;}

public VideoContent VideoContent {get; set; }

public ButtonResourceUri ButtonResourceUri { get; set; }

public WrittenContent WrittenContent { get; set; }

}

我希望我可以使用多维数组或 IList 来存储嵌套数据。

最佳答案

看你帖子的评论,我正在尝试盲目射击......

由于我是 Xamarin 的新手(来自 Windows 窗体和服务器),这对我来说也是一个问题。如何储存?大型 ORM 不起作用...?!

这相对容易——你在 Xamarin 上拥有自己的规则。 Xamarin 相关问题有很多解决方案,我将尝试展示我的标准解决方案。

  • 创建 Xamarin 项目
  • 创建类库(.Net Standard 中首选)
  • 打开类库的 Nuget 包管理器
  • 获取“SQLite-Net 扩展”包
  • 包名:SQLiteNetExtensions
  • 我认为您不需要一些用于 SQLiteExtensions 的 MVVM 包
  • this blog 上有一个很好的教程关于如何初始化数据库模型以及如何读取/写入数据
  • 在每个独立于平台的项目中,必须将初始数据库复制为 file-include >
  • 使用 PCLStorage 或其他东西,您可以通过将初始数据库作为资源导入您的 xamarin 应用程序并将数据库复制到所需位置来应用此任务。

  • 我总是选择 PCLStorage 解决方案,例如 in this gist

    xamarin 的一个技巧是:尝试查找 .net 标准库,并且您应该(在很多情况下)能够在大多数 xamarin 平台上使用它。

    第二个是:注意 nuget 导入时打开的自述文件!!!这些非常重要。我过去常常点击它们,几乎忘记了每个初始化例程。花了我几个小时

    第三个是:基础应用和所有平台依赖的应用中需要安装大量的nuget-libraries。不要忘记在 SQLiteExtensions 之类的情况下,它会安装依赖于平台的库。

    (伙计们,不要为此杀了我——我只是想帮忙;-))

    顺便说一句:SQLiteExtensions 使用 IList 或 List...如果性能有问题,您可以稍后切换到 SQLiteExtensions 的缓存分支(如果需要)

    关于c# - 在另一个 IList 数据模型中存储 Array 或 IList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55636950/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com