在ListView中动态地添加行到网格中。

我有以下几点 ListView

<ListView x:Name="listViewm" ItemsSource="{ Binding Rows }">
        <ListView.Header >
            <Grid >
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="1*"></ColumnDefinition>
                    <ColumnDefinition Width="1*"></ColumnDefinition>
                    <ColumnDefinition Width="1*"></ColumnDefinition>
                </Grid.ColumnDefinitions>
                <Label Text="Name" Grid.Column="3"  FontSize="Medium" />
                <Label Text="Age" Grid.Column="2" FontSize="Medium" />
                <Label Text="DOB" Grid.Column="1" FontSize="Medium" />
            </Grid>
        </ListView.Header>

        <ListView.ItemTemplate>
            <DataTemplate>
                <ViewCell>
                    <Grid >
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="1*"></ColumnDefinition>
                            <ColumnDefinition Width="1*"></ColumnDefinition>
                            <ColumnDefinition Width="1*"></ColumnDefinition>
                        </Grid.ColumnDefinitions>

                        <!--I need my Row values here-->

                    </Grid>
                </ViewCell>
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>

我需要为列表中的每个条目创建一行,并将其动态添加到网格中——。

protected override void OnAppearing()
{
    CreateGrid();
}

public ObservableCollection<Row> Rows { get; set; }

public class Row
{
    public string Name { get; set; }
    public string Age { get; set; }
    public string DOB { get; set; }
}

public void CreateGrid()
{
    Rows = new ObservableCollection<Row>();
    Rows.Clear();

    foreach(var entry in entryList) { // entryList just contains values I use to populate row info 

        var row = new Row();
        row.Name = entry.name;
        row.Age = entry.age;
        row.DOB = entry.dob;

        Rows.Add(row);
    }
}

itemSource没有绑定,所以没有创建新的记录,我试着删除了 ItemsSource="{ Binding Rows }" 中,并在XAML中使用 listViewm.ItemsSource = Rows 在后面的代码中代替,然而这也不奏效。

所以如果 entryList 约翰、鲍勃和比尔有3个测试项目,表格应该是这样的—–。

+----------------+
| Name  Age DOB  |
+----------------+
| John  31 06/09 |
| Bill  32 07/10 |
| Bob   34 08/11 |
+----------------+

解决方案:

你没有将你的值添加到listview中。

<ListView x:Name="listViewm" ItemsSource="{ Binding Rows }">
    <ListView.Header >
        <Grid >
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="1*"></ColumnDefinition>
                <ColumnDefinition Width="1*"></ColumnDefinition>
                <ColumnDefinition Width="1*"></ColumnDefinition>
            </Grid.ColumnDefinitions>
            <Label Text="Name" Grid.Column="3"  FontSize="Medium" />
            <Label Text="Age" Grid.Column="2" FontSize="Medium" />
            <Label Text="DOB" Grid.Column="1" FontSize="Medium" />
        </Grid>
    </ListView.Header>

    <ListView.ItemTemplate>
        <DataTemplate>
            <ViewCell>
                <Grid >
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="1*"></ColumnDefinition>
                        <ColumnDefinition Width="1*"></ColumnDefinition>
                        <ColumnDefinition Width="1*"></ColumnDefinition>
                    </Grid.ColumnDefinitions>

                    <!--I need my Row values here-->
                    <Label Text="{Binding Name}" />
                    <Label Grid.Column="1" Text="{Binding Age}" />
                    <Label Grid.Column="2" Text="{Binding DOB}" />

                </Grid>
            </ViewCell>
        </DataTemplate>
    </ListView.ItemTemplate>

给TA打赏
共{{data.count}}人
人已打赏
未分类

如何在R语言中使用GREPL与类似列式模式的字符串一起使用

2022-9-14 5:52:42

未分类

如何在selenium c#中验证DropDown List中的所有值。

2022-9-14 6:03:32

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索