2012-03-16 3 views
0

У меня есть Silverlight Datagrid, заполненный из хранимой процедуры из базы данных, с использованием дуплексной службы WCF, которую служба нажимает клиенту на новый набор ObservableCollection каждые 20 секунд. Прямо сейчас мой клиент Datagrid itemsSource сбрасывается на новый ObservableCollection каждый раз, когда появляется новый. Мне просто интересно, возможно ли DIRECTLY BIND itemsSource datagrid для службы WCF ObservableCollection, так что мне не нужно каждый раз перезагружать источник, и пользовательский интерфейс будет автоматически обновляться, когда INotifyPropertyChanged будет запущен из службы ObservableCollection.Binding WCF ObservableCollection to Silverlight DataGrid

Я пробовал решение в этом сообщении http://forums.silverlight.net/t/216796.aspx/1, но это не совсем то, что я хочу, так как он все еще сбрасывает itemsSource каждый раз.

Любая помощь была бы принята с благодарностью.

+0

Я думаю, вы имеете в виду INotifyCollectionChanged, а не INotifyPropertyChanged? Если вы просто перепроверяете каждый раз, вы можете вместо этого привязать к списку . – RichardOD

ответ

0

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

+0

Спасибо за ваш ответ, я пробовал это, и это все еще не идеальное решение, которое я хочу, потому что сначала очистить коллекцию и добавить новую, все равно так же, как сброс источника данных. С точки зрения «пройдите и добавьте/удалите только те, которые нужно изменить», прямо сейчас у меня есть цикл for, который сравнивает старую коллекцию с новой коллекцией и обновляет старую, но она не очень эффективна. У вас есть лучший способ сделать это? – sicccccc

+0

sicccccc, вам нужно спросить себя, что более эффективно, очистка коллекции и добавление новых элементов или цикл, о котором вы говорили, который не очень эффективен. – dparker

+0

Привет, dparker, я действительно хочу знать, что если есть лучшее альтернативное решение, которое я мог бы динамически обновлять свой наблюдаемый коллектив из службы. Есть ли у вас какие-либо предложения? Я хочу избежать очистки и добавления новой коллекции в источник datagrid, потому что это заставит мой datagrid потерять текущее представление. – sicccccc

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