Кажется, я не могу найти наилучшую практику или лучший механизм структурирования и использования данных для моего приложения MVVM Xamarin. Это может быть простым недоразумением о том, как атаковать проблему, но я не уверен.
Я пытался использовать IEnumerable, IList и простой массив для многомерных данных (связывание?), Но я довольно новичок в MVVM, поэтому я могу подойти к этому неправильно.
Это для приложения Android Xamarin.Forms, поэтому использование привязок данных типа MySQL не работает (так как вы не можете хранить в базе данных). Таким образом, использование этих классов данных является правильным способом, но я не знаю, как структурировать реляционные данные.
Каждый пояс может иметь МНОГО видео, кнопок и другого контента.
Я рассмотрел примеры 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 для хранения вложенных данных.