Most of the Q&A I found on StackOverflow is how Binding work but x:Bind
doesn't which usually solved by Bindings.Update()
. However, my issue is, inside a GridView
, ItemSource="{x:Bind _myList}"
works but ItemSource="{Binding _myList}"
doesn't.
Why? And how do I make Binding work? (instead of x:Bind
)
Here's a few code thingies:
Class:
public class MyClass
{
public string prop1 {get; set;}
public string prop2 {get; set;}
}
public class MyList : List<MyClass>
{
public void Populate()
// Add items
}
Code Behind
public MyList _myList = new MyList();
_myList.Populate();
DataContext = this;
Bindings.Update();
XAML (doesn't work here but works if ItemSource: changed into x:Bind _myList
)
<GridView ItemSource="{Binding _myList}">
<GridView.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding prop1}"/> <TextBlock Text="{Binding prop2}/>
</StackPanel>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
The problem that your _myList
is field, not property. So, change to
public MyList _myList { get; set; } = new MyList();
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With