在 FlipView 中显示绑定数据

Displaying bound data in a FlipView

我在 XAML 中声明了一个 FlipView 控件,我想将它绑定到一个在代码隐藏(.cs 文件)中定义和填充的集合源。此外,texblock 用于显示集合中某个项目的特定 属性。

XAML FlipView 声明:

        <FlipView x:Name="FlipViewStudents" Grid.Row="1" Height="Auto" Width="Auto" ItemsSource="{x:Bind Students}">
            <FlipView.ItemTemplate>
                <DataTemplate>
                    <StackPanel Orientation="Vertical">
                        <TextBlock x:Name="StudentName" Text="{Binding Name}" FontSize="60" Foreground="Green" FontWeight="Bold" TextAlignment="Left"/>
                    </StackPanel>
                </DataTemplate>
            </FlipView.ItemTemplate>
        </FlipView>

C#代码隐藏(属于这个XAML文件的.cs文件)集合变量的定义:

private List<SingleStudent> Students { get; set; }

更新: 我正在 Page_Loaded 事件处理程序中初始化集合变量:

Students = new List<SingleStudent>();

此外,我正在使用具有 30 秒滴答间隔的 DispatcherTimer,并且我在 dispatcherTimer_Tick(当滴答发生时)处理程序(先清除它之后)中填充集合变量:

Students.Clear();
var singleStudent = new SingleStudent()
{
    Name = "John",
    Grade = "B" 
};    
Students.Add(singleStudent);

如图所示,集合变量每 30 秒清除和填充一次。我希望 GUI 中的 FlipView 会在项目添加到集合时自行更新。

我已经调试并检查对象是否已添加到代码中的集合中,但它没有在 GUI 中显示任何内容。

如图所示,SingleStudent 是一个 class,具有不同的属性,包括 Name,这是要在 FlipView 中显示的项目 属性。

我也尝试过使用 ObservableCollection,但这也不会显示任何内容。 感谢帮助或提示。

正如您提到的,在使用 List<SingleStudent>ObservableCollection<SingleStudent>

时,使用 ListView 而不是翻转视图时也会遇到同样的问题

我做了一些测试,结果证明在 Page_Loaded 事件中初始化集合会打乱您的数据绑定。因此你应该定义:

private ObservableCollection<SingleStudent> Students = new ObservableCollection<SingleStudent>();

private ObservableCollection<SingleStudent> Students { get; set; }
public TestPage() //Constructor of your page
{
    Students = new ObservableCollection<SingleStudent>();
}

此外,您看到我使用 ObservableCollection<SingleStudent>。您必须使用它而不是列表。使用 List<SingleStudent> 将不起作用,因为添加项目不会引发 INotifyPropertyChanged,因此不会更新数据绑定。