我有一个具有ListView的GUI应用程序。它用于显示应用程序的日志。 在xaml中我有以下内容:
<ListView x:Name="lvStatus" Margin="5,5,5,5" ItemsSource="{Binding LogView}"
ItemTemplate="{StaticResource StatusListTemplate}">
</ListView>
在代码中,listView被初始化并与ListCollectionView一起使用:
public ListCollectionView LogView {get; private set; }
...
ObservableCollectionLog uiLogSink = new ObservableCollectionLog();
Logger.RegisterLogSink(uiLogSink);
LogView = new ListCollectionView(uiLogSink.Entries);
我想在某些时候清除ListView。我不能只运行ListView.Clear。
知道如何控制我的ListView吗?
由于 贝
答案 0 :(得分:0)
只需清除绑定的数据源。
答案 1 :(得分:0)
您可以创建一个包装uiLogSynk的CollectionView并将listView绑定到CollectionView:
_view = new ListCollectionView(uiLogSynk);
每当您单击“清除”日志按钮时,您都会记录uiLogSynk的长度。
int startDisplayLogIndex = 0;
public void buttonClick(...) { startDisplayLogIndex = uiLogSynk.Length; }
您所要做的就是将一个过滤器附加到_view并指定一个过滤器函数来比较每个元素的索引。
_view.Filter = new Predicate(ShouldDisplayLog);
public bool IsValueTruck(Object value) { return(uiLogSynk.IndexOf(value)&gt; = startDisplayLogIndex); }