我在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/

10-12 17:12