2016-05-06 2 views
0

У меня есть класс (SensorContainer), который содержит статический список (SensorList).ListView не обновляется в WPF при привязке к статическому свойству

Класс выглядит следующим образом:

public static class SensorContainer 
    { 

     public static List<Sensor> SensorList 
     { 
      get { return _sensorList; } 
     } 

     private static readonly List<Sensor> _sensorList = new List<Sensor>(); 

    } 

В моей Xaml у меня есть ListView, что я связываться с этой SensorList со следующим кодом

<ListView ItemsSource="{Binding Source={x:Static local:SensorContainer.SensorList}}"> 

связывания работает на самом деле! Но ... только когда я делаю либо изменить размер окна или переключиться на другую вкладку Gui и обратно !!!

EDIT: Использование ObservableCollection возможно, как указано в pkeuter, но не является возможным решением на данный момент из-за технических характеристик в других частях программы.

Это не имеет ничего общего со временем или с коммуникацией датчиков ... он просто не показывает изменения на SensorList, до тех пор, как я не поиграться с моим окном :) ...

Любых идея о том, что может быть проблемой?

+0

Другим вариантом было бы использовать 'CollectionViewSource' и' CompositeCollection', что будет попробуйте обернуть свою коллекцию таким образом, чтобы пользовательские интерфейсы могли подбирать измененные элементы. – XAMlMAX

ответ

0

Используйте ObservableCollection. Это уведомит пользовательский интерфейс об изменении вашей коллекции. Таким образом, вы не должны изменить окно все время, ;-)

Здесь больше информации о ObservableCollection: https://msdn.microsoft.com/en-us/library/ms668604(v=vs.110).aspx

+0

Спасибо за подсказку. Дело в том, что это решение не обсуждается из-за спецификаций программы ... я добавлю эту информацию к проблеме. – Laurence

+0

Ну, если вы не хотите использовать ObservableCollection, вы всегда можете создать собственный класс и реализовать IObservable. Это тоже будет работать. Но если вы хотите использовать привязку, вам нужно использовать коллекцию, которая реализует IObservable (например, ObservableCollection). –

+0

Но как получилось, что он на самом деле связывает (!!!), но просто с странным поведением ...? – Laurence

Смежные вопросы