Mohammad Hani
Mohammad Hani

Reputation: 469

JSON Data Binding Window Store App Using C#

I'm trying to fetch Items from a text file, in JSON format (Data.txt):

[
  {
    "Name": "Store",
    "Items": [
      {
        "Lev": "1",
        "Brand": "Imported"
      }
    ]
  }
]

Now all I want is to show all these Items in a separate listview, with Name used a the Heading on top. Please guide me.

Upvotes: 0

Views: 98

Answers (1)

Tomasz Sołtysik
Tomasz Sołtysik

Reputation: 146

In ViewModel create Properties:

private string _name;
public string Name
{
    get { return _name; }
    set
    {
        if (_name != value)
        {
            _name = value;
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(Name)));
        }
    }
}

private IEnumerable<JsonObject> _items;
public IEnumerable<JsonObject> Items
{
    get { return _items; }
    set
    {
        if (_items != value)
        {
            _items = value;
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(Items)));
        }
    }
}

and method

void ParseJson(string json)
{
    var obj = JsonArray.Parse(json)[0].GetObject();
    Name = obj.GetNamedString("Name");
    Items = obj.GetNamedArray("Items");
}

In View create ListView:

<ListView ItemsSource="{Binding Items}" Header="{Binding Name}" />

Upvotes: 2

Related Questions