如何添加ListView与数据模板按钮弹出在windows商店应用程序8.1 c#

本文关键字:windows 应用程序 按钮 添加 何添加 ListView 数据 | 更新日期: 2023-09-27 18:11:15

我有一个要求,就像当我点击按钮飞出应该与动态数据和指定模板的列表。下面是Xaml中的代码。但是Flyout没有加载任何数据。

     <Button Content="Folders" >
      <FlyoutBase.AttachedFlyout>
          <Flyout >
                <ListView x:Name="lstEmailFolder"  >
                     <ListView.ItemTemplate>
                        <DataTemplate>
                          <Grid>
                              <Grid.ColumnDefinitions>
                               <ColumnDefinition Width="*"/>
                               <ColumnDefinition Width="40"/>
                               </Grid.ColumnDefinitions>
                            <Image Source="/Images/Favorite_icon.png"  Height="30" Width="30" Grid.Column="1" />
                         <TextBlock Text="{StaticResource Foldername}" Width="30" Height="30" Foreground="White" FontSize="20"/>
                          </Grid>
                    </DataTemplate>
           </ListView.ItemTemplate>
      </ListView>
     </Flyout>
   </FlyoutBase.AttachedFlyout>
</Button>

如何添加ListView与数据模板按钮弹出在windows商店应用程序8.1 c#

您没有将Itemsource属性绑定到Listview,而不是Text="{StaticResource Foldername}"使用Text="{Binding Foldername}"

xaml

 <Button Content="Display Flyout">
    <Button.Flyout>
        <Flyout>
            <ListView x:Name="lstEmailFolder"  >
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <Grid>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="*"/>
                                <ColumnDefinition Width="40"/>
                            </Grid.ColumnDefinitions>                                
                            <TextBlock Text="{Binding Foldername}" Width="30" Height="30" Foreground="White" FontSize="20"/>
                        </Grid>
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>
        </Flyout>
    </Button.Flyout>
</Button>
c#

this.InitializeComponent();
List<FlyoutData> data = new List<FlyoutData>();
data.Add(new FlyoutData("Folder1"));
data.Add(new FlyoutData("Folder2"));
lstEmailFolder.ItemsSource = data;

 public class FlyoutData
{
    public string Foldername { get; set; }
    public FlyoutData(string Foldername)
    {
        this.Foldername = Foldername;
    }
}