| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > WPF и Silverlight > Silverlight 4 редактирование файла на хосте |
| Автор: ad12 12.1.2011, 16:36 |
| Добрый день. VS2010, Silverlight 4 браузерное приложение. На моём хосте имеется файл 1.xml //Открываю поток для чтения с помощью WebClient Uri url = new Uri("Statistic.xml", UriKind.Relative); WebClient client = new WebClient(); client.OpenReadCompleted += new OpenReadCompletedEventHandler(client_OpenReadCompleted); client.OpenReadAsync(url); void client_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e) { using (Stream s = e.Result) { XDocument xdoc = XDocument.Load(s); } // создаю коллекцию records = new ObservableCollection<TDBInfo>(); // наполняю её значениями атрибутов считанного XML … … // затем отображаю коллекцию в моих DataGrid и DataForm (из Silverlight Tools) myDataGrid.ItemsSource = records; myDataForm.ItemsSource = records; } // Теперь вручную редактирую поля в myDataForm Подскажите, пожалуйста – как сохранить отредактированные значения полей в соответствующие значения атрибутов исходного 1.xml (на моём хосте)? Не могу найти простого метода для сохранения. Если использовать client.OpenWriteAsync(), то, как я понимаю, придётся писать ещё серверный обработчик типа CGI или ISAPI расширения. Неужели в Silverlight 4 нет какого-нибудь метода попроще? |
| Автор: jonie 12.1.2011, 20:43 | ||||||
| Silverlight это клиентское приложение. С тем же успехом вы могли бы просить сделать javascript кодера в коде html запись файла. Без серверных вещей вам ничего не удастся. В аттаче пример как это сделать. По шагам. 0) создали DTO сущьность DBItem.cs 1) добавили в стандартную заглушку в web проект WCF Silverlight enabled Serice 2) вписали в него логику загрузки и сохранения коллекции dbitem-ов. Указали для нас что сервис есть синглетон (чтоб данные хранил в сессии) между вызовами Load\save:
3) пересобрали проект 4) добавили Add ServiceReference в SL Проект 5) пересобрали проект 6) открыли форму в режиме редактирования визуального 7) перешли на окно Data Source 8) пошли пить чай (это окно будет тупить достаточно долго). 9) перетащили из окна DataSource грид в окно 10) вписали в code файл окна:
добавили кнопку на окно и привязали её Click делегат к SaveBtn_Click. Где в коде разметки студия также сгенила:
запускаем. Радуемся (ну или огорчаемся что там всё сложно)... |