首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Avalonia DataGrid不显示所有行

Avalonia DataGrid不显示所有行
EN

Stack Overflow用户
提问于 2022-11-26 14:07:28
回答 1查看 32关注 0票数 0

对于Avalonia DataGrid,我有一个非常奇怪的问题,基本上尽管行数是常量的(在我的例子中是200行),它实际上只显示小于200,而且计数是随机的。每次加载数据时,显示的行最多可达170行,但有时可在120处停止,等等。

我可以从后端访问所有200行,但如上所述,DataGrid显示的数据总是低于实际计数。

代码语言:javascript
运行
复制
<DataGrid Name="DataGridResults" Items="{Binding Records}" AutoGenerateColumns="False">
            <DataGrid.Columns>
                <DataGridTextColumn Header="ID" Binding="{Binding ID}"/>
                <DataGridTextColumn Header="Path" Binding="{Binding File}"/>
                <DataGridTextColumn Header="Name" Binding="{Binding Name}"/>
            </DataGrid.Columns>
        </DataGrid>
代码语言:javascript
运行
复制
public void OnClickCommand()
        {
            Records = new ObservableCollection<Record>(r.GetData(Path).ToList());
            Count = Records.Count;
        }

值得补充的是,数据实际上已经存在,但是滚动条不允许进一步滚动。我可以在垂直监视器上看到更多的东西,但是买这么长时间的显示器去看所有的东西都是有问题的。

EN

回答 1

Stack Overflow用户

发布于 2022-11-26 15:25:32

我敢打赌,Records属性的设置者不需要引发PropertyChanged通知。当您更改整个集合时,它需要提高PC,而不是添加/删除项。为了解决这个问题,引发了PropertyChanged:

代码语言:javascript
运行
复制
public event PropertyChangedEventHandler PropertyChanged;

private ObservableCollection<Record> _records;

public ObservableCollection<Record> Records
{
    get => _records;
    set
    {
        if (_records != value)
        {
            _records = value;
            // if you have a base Viewmodel class, call your custom impl for raising PropertyChanged
            PropertyChanged?.Invoke (this, new PropertyChangedEventArgs(nameof(Records)));
        }
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74582857

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档