c # Как изменить ListView - PullRequest
       2

c # Как изменить ListView

0 голосов
/ 09 сентября 2010

У меня есть приложение с графическим интерфейсом, которое имеет ListView.Он используется для отображения журнала приложения.В 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 голосов
/ 17 сентября 2010

Вы можете создать CollectionView, упаковывающий uiLogSynk, и связать listView с CollectionView:

_view = new ListCollectionView (uiLogSynk);

Когда вы нажимаете кнопку «Очистить», вы записываете длину вашего uiLogSynk.

int startDisplayLogIndex = 0;

public void buttonClick (...) { startDisplayLogIndex = uiLogSynk.Length; }

все, что вам нужно сделать, это прикрепить фильтр к _view и указать функцию фильтра, которая сравнивает индекс каждого элемента.

_view.Filter = новый предикат (ShouldDisplayLog);

public bool IsValueTruck (Значение объекта) { return (uiLogSynk.IndexOf (value)> = startDisplayLogIndex); }

0 голосов
/ 09 сентября 2010

Просто очистите свой связанный источник данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...