Я публикую этот ответ исключительно для тех, кто наткнулся на эту ветку в поисках ответа. (сделано в SL4)
вам понадобится 2 списка:
- один, чтобы содержать полученные данные от службы (называемые sourceList)
- один для хранения корневых записей для отображения (DisplayList), к которым привязан ваш treeView.
Вы также должны убедиться, что в вашей операции Load для LoadBehaviour установлено значение Merge.
например:
domainContext.Load(domainContext.GetEntityQuery(), LoadBehavior.MergeIntoCurrent, CallbackFunction, userState);
так что все, что остается сейчас - это вызывать ваш domainContext.Load после каждого обновления и в вашей CallbackFunction заменять свой sourceList новым списком сущностей, возвращаемых веб-службой. Так как записи детализации вашего списка отображения основаны на ассоциации и иерархическом шаблоне данных, его все равно следует расширить на только что отредактированную запись.
Примечание Если перестроить DisplayList с нуля, древовидная структура, очевидно, будет перерисована \ свернута.
Надеюсь, это кому-нибудь поможет.
Jan