Как я могу показать каждый шаблон в uwp с помощью datatemplateselector
главная страница
public List<Class1> urlcollection { get; set; } = new List<Class1>(); public MainPage() { this.InitializeComponent(); string FilePath = Path.Combine(Package.Current.InstalledLocation.Path, "Class1.json"); using (StreamReader file = File.OpenText(FilePath)) { var json = file.ReadToEnd(); Class1[] rootobject = (Class1[])JsonConvert.DeserializeObject(json, typeof(Class1[])); } }
Главная страница XAML
<pre><Page x:Class="Task2.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:Task2" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> <Grid> <ListView ItemsSource="{x:Bind urlcollection,Mode=OneWay}"> <ListView.ItemTemplate> <DataTemplate x:DataType="local:Class1"> <Image Width="200" Height="200" Source="{x:Bind type, Mode=OneWay}" Stretch="Fill" /> </DataTemplate> </ListView.ItemTemplate> </ListView> </Grid> </Page>
Класс1
public class Rootobject { public Class1[] Property1 { get; set; } } public class Class1 { public string itemType { get; set; } public string type { get; set; } public string title { get; set; } public Detail[] details { get; set; } } public class Detail { public string detail_type { get; set; } public string itemType { get; set; } public string fill_color { get; set; } public Gradient_Props gradient_props { get; set; } public string icon_url { get; set; } public string resource_url { get; set; } } public class Gradient_Props { public string gradient_stop_1 { get; set; } public string gradient_stop_2 { get; set; } }
Что я уже пробовал:
У меня есть json файл который состоит из 3 различных массивов из которых мне нужно прочитать и показать в listview цвет при нажатии на кнопку color или градиент при нажатии на кнопку gradient и url изображения при нажатии на эту кнопку я путаюсь в коде и не могу найти правильный пример этого как я могу это сделать
Gerry Schmitz
Вам нужно быть более конкретным. Вы даже не подтвердили, что процесс десериализации работает. И вы, вероятно, должны использовать ObservableCollection для ItemsSource.