c#如何修改ListView

时间:2010-09-09 19:12:47

标签: c# wpf

我有一个具有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吗?

由于 贝

2 个答案:

答案 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); }