我有一个 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)