Khach95 Ответов: 0

Как я могу показать каждый шаблон в 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.

0 Ответов