我在StackOverflow上发现的大多数问题与解答都是Binding的工作方式,但是x:Bind
不起作用,通常Bindings.Update()
可以解决。但是,我的问题是,在GridView
中,ItemSource="{x:Bind _myList}"
有效,但ItemSource="{Binding _myList}"
无效。
为什么?以及如何使绑定(bind)工作? (而不是x:Bind
)
以下是一些代码问题:
类(class):
public class MyClass
{
public string prop1 {get; set;}
public string prop2 {get; set;}
}
public class MyList : List<MyClass>
{
public void Populate()
// Add items
}
背后的代码
public MyList _myList = new MyList();
_myList.Populate();
DataContext = this;
Bindings.Update();
XAML(在这里不起作用,但是如果ItemSource:更改为
x:Bind _myList
,则可以使用)<GridView ItemSource="{Binding _myList}">
<GridView.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding prop1}"/> <TextBlock Text="{Binding prop2}/>
</StackPanel>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
最佳答案
您的_myList
是字段而不是属性的问题。因此,更改为
public MyList _myList { get; set; } = new MyList();
关于c# - x :Bind works but Binding doesn't (opposite to most Q&A found),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38863989/