Większość z Q & A, którą znalazłem na StackOverflow, to sposób łączenia, ale x:Bind
, który zwykle nie jest rozwiązywany przez Bindings.Update()
. Jednak moim problemem jest wewnątrz GridView
, ItemSource="{x:Bind _myList}"
działa, ale nie ma ItemSource="{Binding _myList}"
.x: Bind działa, ale bindowanie nie działa (w przeciwieństwie do większości znalezionych pytań i odpowiedzi)
Dlaczego? I jak sprawić, by Binding działał? (Zamiast x:Bind
)
Oto kilka thingies kod:
Klasa:
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 (tu nie pracuje, ale działa, jeśli ItemSource: Zmieniono w x:Bind _myList
)
<GridView ItemSource="{Binding _myList}">
<GridView.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding prop1}"/> <TextBlock Text="{Binding prop2}/>
</StackPanel>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
Dziękuję bardzo. To zadziałało. I nigdy nie spodziewałem się, że prośba o StackOverflow jest tak łatwa. Jestem początkującym programistą i nie rozumiem różnicy między polem a własnością i dlaczego x: Bind działa na polu, a Binding nie, ale jestem na dobrej drodze, aby dowiedzieć się więcej. –