2013-06-18 4 views
0

Итак, я работаю над приложением отслеживания активов, которое создается с помощью wpf. В представлении панели мониторинга будет DataGrid с строками данных и картой, соответствующей сетке. В настоящее время у меня это работает, но я чувствую, что это скорее хак, и что с wpf я должен иметь возможность одновременно обновлять два элемента.WPF MVVM DataGrid/Map

В настоящее время я получаю данные от веб-службы, форматирует ее в объекты записи, а затем привязываю к DataGrid. Я также беру тот же источник данных и создаю свои значки, местоположение и т. Д., Используя DataTemplate. Все работает. Что мне не нравится, так это то, что когда данные фильтруются в сетке - я должен вручную прокручивать данные карты и фильтровать ее - чтобы соответствовать сетке. Сетка уже содержит данные, которые мне нужны (широта/долгота, местоположение) для создания моих точек карты. Я просто не могу заставить два элемента (Grid/Map) связываться с одним и тем же источником.

+0

Опубликовать соответствующий код и XAML, или, может быть, небольшой репрограммный проект –

ответ

0

Используйте источник ObservableCollection для своего источника данных, но не привязывайтесь к нему, потому что он будет привязан к представлению по умолчанию вашей коллекции, привяжите оба элемента управления к ICollectionView, которые вы контролируете, так как вы меняете представление коллекции в коде, и оба элемента управления будут обновлять без необходимости писать код для их синхронизации ...

Так что в вашем случае, когда вы фильтруете данные, ваше представление, использующее привязку TwoWay, изменится, и поскольку карта привязана к одному и тому же представлению, изменения в представлении будут сразу же видны на карте ...