小编use*_*482的帖子

.net c# 限制 observablecollection 中的条目数

我有一个 WPF 应用程序,其中 UI 有一个列表框。列表框绑定了 ObservableCollection。日志类实现 INotifyPropertyChanged。

该列表将显示应用程序的连续日志记录。只要应用程序正在运行。ObservableCollection 的大小不断增长。一段时间后,我收到内存不足异常。我想在列表控件中显示最新的 1000 个条目。对此的任何建议都会有很大帮助!!

XAML:

                    <DataGrid AutoGenerateColumns="False" SelectedValue="{Binding SelectedLog}" SelectionUnit="FullRow" SelectionMode="Single" Name="dataGridLogs" 
                      ItemsSource="{Binding Path=LogList}"  CanUserReorderColumns="True" CanUserResizeRows="True" CanUserDeleteRows="False"  IsReadOnly="True"
                      CanUserAddRows="False" EnableColumnVirtualization="True" EnableRowVirtualization="True" SelectionChanged="grid_SelectionChanged"> 
                <DataGrid.Columns>
                    <DataGridTextColumn Header="Time Stamp" Binding="{Binding StrTimeStamp, Mode=OneWay}" Width="Auto"/>
                    <DataGridTextColumn Header="Action" Binding="{Binding Action, Mode=OneWay}" Width="Auto"/>

            </DataGrid>
Run Code Online (Sandbox Code Playgroud)

视图模型:

    public ObservableCollection<LogData> LogList
    {
        get
        {
            if (logList == null)
            {
                logList = new ObservableCollection<LogData>();
            }
            return logList;
        }
        set
        {
            logList = value;
            OnPropertyChanged("LogList");
        }
    }
Run Code Online (Sandbox Code Playgroud)

模型:

     public class LogData : INotifyPropertyChanged
{
    public …
Run Code Online (Sandbox Code Playgroud)

c# data-binding observablecollection

5
推荐指数
1
解决办法
1933
查看次数

标签 统计

c# ×1

data-binding ×1

observablecollection ×1