Старый 24.02.2012, 22:27   #1   
Смотри сюда
 
Аватар для RedName
 
Сообщений: 418
Регистрация: 16.11.2007

RedName вне форума Не в сети
[С#] ObservableCollection + БД.

Есть одна коллекция

Код:
public ObservableCollection<StreetViewModel> Streets { get; set; }
        
        public StreetsViewModel()
        {          
            Streets = new ObservableCollection<StreetViewModel>();
          
            Streets.Add(new StreetViewModel(new Street
            {
                Name = "Moskovski prospect",
                CarsVolume = 20,
                PathStr = "линия кароче"
            }));
         }
Кто нибудь может показать как значение CarsVolume брать из какой либо БД. SQl или даже XML не важно. Оче надо, а с БД оче плохо всё.

Последний раз редактировалось RedName; 24.02.2012 в 23:24.
  Ответить с цитированием
Старый 24.02.2012, 22:39   #2   
Форумец
 
Аватар для Spectator
 
Сообщений: 39,877
Регистрация: 27.05.2003
Возраст: 46

Spectator вне форума Не в сети
Не-не-не. Так дело не пойдет.
Я сейчас внесу в требования указывать в темах язык программирования. И твоя тема подпадет под эти требования и соседняя, AlexanderSergeev'а.
Требования будут такими - темы по вопросам, связанным с конкретным языками программирования указывать "префикс" языка.
Существующие самостоятельно переименую, наказывать задним числом, понятно, не буду.
Это, я так понимаю, у нас Java. Если вдруг не так - поправь.
  Ответить с цитированием
Старый 24.02.2012, 22:42   #3   
highly mean
 
Сообщений: 1,128
Регистрация: 26.05.2011
Возраст: 35

silly вне форума Не в сети
Это С#. Вот вопрос мне совсем не понятен.
  Ответить с цитированием
Старый 24.02.2012, 22:46   #4   
Форумец
 
Аватар для Spectator
 
Сообщений: 39,877
Регистрация: 27.05.2003
Возраст: 46

Spectator вне форума Не в сети
Цитата:
Сообщение от silly Посмотреть сообщение
Это С#. Вот вопрос мне совсем не понятен.
Замечательно. Пусть будет C#
Вопросов вроде бы с моей стороны не было, тему переименовал, сейчас размещу настоятельную просьбу в названии темы указывать язык программирования в подобных темах.
  Ответить с цитированием
Старый 24.02.2012, 23:06   #5   
Смотри сюда
 
Аватар для RedName
 
Сообщений: 418
Регистрация: 16.11.2007

RedName вне форума Не в сети
Цитата:
Сообщение от silly Посмотреть сообщение
Это С#. Вот вопрос мне совсем не понятен.
Напрмиер есть XML фаил в котором

Код:
<?xml version="1.0" encoding="utf-8" ?>
<Streets>
   <Street>
      <Name>Moskovski prospect</Name>
      <CarsCount>100></CarsCount>
   </Street>
</Streets>
и вон та ObservableCollection, в которой нужно значение CarsCount получить из этого XML.

Я в каких либо операциях с Бд полный ноль. Поэтому, если можно, привести пример как это сделать. МОжно и SQL взять. Мне без разницы.
  Ответить с цитированием
Старый 24.02.2012, 23:08   #6   
Смотри сюда
 
Аватар для RedName
 
Сообщений: 418
Регистрация: 16.11.2007

RedName вне форума Не в сети
Цитата:
Сообщение от Spectator Посмотреть сообщение
Замечательно. Пусть будет C#
Вопросов вроде бы с моей стороны не было, тему переименовал, сейчас размещу настоятельную просьбу в названии темы указывать язык программирования в подобных темах.
К сожалению, название темы редактировать нельзя. Я и сам хотел поправить.
  Ответить с цитированием
Старый 24.02.2012, 23:16   #7   
Форумец
 
Аватар для Spectator
 
Сообщений: 39,877
Регистрация: 27.05.2003
Возраст: 46

Spectator вне форума Не в сети
Цитата:
Сообщение от RedName Посмотреть сообщение
К сожалению, название темы редактировать нельзя. Я и сам хотел поправить.
Вполне можно обратиться ко мне в личку в таких случаях.
Даже нужно, если понял что не подумал, когда название темы придумывал.
  Ответить с цитированием
Старый 24.02.2012, 23:33   #8   
highly mean
 
Сообщений: 1,128
Регистрация: 26.05.2011
Возраст: 35

silly вне форума Не в сети
Переделано из студенческого:

Код:
using System;
using System.Collections.Generic;
using System.IO;
using System.Xml;
using System.Xml.Linq;

public class Street
{
	public string Name {get; set;}
	public long CarsCount {get; set;}
}

public class XmlStreetReader : IDisposable
{
	Stream sourceStream;
	
	public XmlStreetReader(string fileName)
	{
		sourceStream = new FileStream(fileName, FileMode.Open);
	}
	
	public void Dispose()
	{
		sourceStream.Dispose();
	}
	
	public IEnumerable<Street> Streets
	{
		get { return StreetsEnumerable(); }
	}
	
	private IEnumerable<Street> StreetsEnumerable()
	{
		using (var reader = XmlReader.Create(sourceStream)) {

			while (reader.Read()) {
				if (reader.NodeType == XmlNodeType.Element && reader.Name == "Street") {
					
					var street = new Street();
					var streetNode = (XElement)XElement.ReadFrom(reader);
					
					foreach (var desc in streetNode.Descendants()) {
						if (desc.NodeType == XmlNodeType.Element) {
							switch (desc.Name.ToString()) {
								case "Name":      street.Name      = desc.Value; break;
								case "CarsCount": street.CarsCount = long.Parse(desc.Value); break;
							}
						}
					}
					
					yield return street;
				}
			}
		}
	}
}

class Application
{
	public static void Main()
	{
		using (var reader = new XmlStreetReader("streets.xml")) {
			foreach (var street in reader.Streets) {
				Console.WriteLine("{0}: {1}", street.Name, street.CarsCount);
			}
		}
	}
}
Sqlite для подобных целей тоже ничего, кстати.

Последний раз редактировалось silly; 25.02.2012 в 00:04.
  Ответить с цитированием
Старый 25.02.2012, 00:30   #9   
Смотри сюда
 
Аватар для RedName
 
Сообщений: 418
Регистрация: 16.11.2007

RedName вне форума Не в сети
Всё круто конечно, но нельзя все таки с ObservableCollection?
  Ответить с цитированием
Старый 25.02.2012, 00:48   #10   
highly mean
 
Сообщений: 1,128
Регистрация: 26.05.2011
Возраст: 35

silly вне форума Не в сети
Прочитал из файла, добавил в коллекцию. Какие проблемы?
  Ответить с цитированием
Старый 25.02.2012, 15:17   #11   
^.^
 
Аватар для scanNE®
 
Сообщений: 10,922
Регистрация: 24.10.2004

scanNE® вне форума Не в сети
и это кодеры Воронежа? п-ц ! полный п-ц

http://msdn.microsoft.com/ru-ru/library/ms668604.aspx
  Ответить с цитированием
Старый 25.02.2012, 15:42   #12   
Форумец
 
Аватар для Spectator
 
Сообщений: 39,877
Регистрация: 27.05.2003
Возраст: 46

Spectator вне форума Не в сети
Цитата:
Сообщение от scanNE® Посмотреть сообщение
и это кодеры Воронежа? п-ц ! полный п-ц
Тихо-тихо-тихо.
Без наездов.
Мы все учились понемногу, Чему-нибудь и как-нибудь. (с) АС Пушкин.
  Ответить с цитированием
Старый 25.02.2012, 20:43   #13   
highly mean
 
Сообщений: 1,128
Регистрация: 26.05.2011
Возраст: 35

silly вне форума Не в сети
Цитата:
Сообщение от scanNE® Посмотреть сообщение
и это кодеры Воронежа? п-ц ! полный п-ц

http://msdn.microsoft.com/ru-ru/library/ms668604.aspx
Да тут как раз первым же постом в теме идет пример добавления объекта в ObservableCollection.

Рискну предположить, у ТС проблемы с пониманием MVVM и построением архитектуры своей поделки.
  Ответить с цитированием
Старый 29.02.2012, 18:10   #14   
Смотри сюда
 
Аватар для RedName
 
Сообщений: 418
Регистрация: 16.11.2007

RedName вне форума Не в сети
Цитата:
Сообщение от silly Посмотреть сообщение
Да тут как раз первым же постом в теме идет пример добавления объекта в ObservableCollection.

Рискну предположить, у ТС проблемы с пониманием MVVM и построением архитектуры своей поделки.
С MVVM и архитектурой всё прекрасно, всё работает. Написал же - с бд у меня оче плохо.
  Ответить с цитированием
Старый 01.03.2012, 00:14   #15   
highly mean
 
Сообщений: 1,128
Регистрация: 26.05.2011
Возраст: 35

silly вне форума Не в сети
Цитата:
Сообщение от RedName Посмотреть сообщение
С MVVM и архитектурой всё прекрасно, всё работает.
Только если в первом посте действительно пример, а не кусок кода из программы. По-моему, для реального разделения M и VM, StreetViewModel и Street стоило бы засунуть в разные коллекции. Также, если StreetViewModel ничем толком не отличается от Street, то можно вообще не реализовывать StreetViewModel, это будет просто лишняя обертка.
  Ответить с цитированием
Старый 03.03.2012, 00:36   #16   
Смотри сюда
 
Аватар для RedName
 
Сообщений: 418
Регистрация: 16.11.2007

RedName вне форума Не в сети
Цитата:
Сообщение от silly Посмотреть сообщение
Только если в первом посте действительно пример, а не кусок кода из программы. По-моему, для реального разделения M и VM, StreetViewModel и Street стоило бы засунуть в разные коллекции. Также, если StreetViewModel ничем толком не отличается от Street, то можно вообще не реализовывать StreetViewModel, это будет просто лишняя обертка.
Нет это кусок кода программы и всё там на своих местах как и должно быть. А про обёртки, разные коллекции могу только посоветовать перечитать про MVVM.
  Ответить с цитированием
Старый 03.03.2012, 15:21   #17   
highly mean
 
Сообщений: 1,128
Регистрация: 26.05.2011
Возраст: 35

silly вне форума Не в сети
Так вы нашли ответ на свой вопрос?
  Ответить с цитированием
Старый 03.03.2012, 20:07   #18   
Смотри сюда
 
Аватар для RedName
 
Сообщений: 418
Регистрация: 16.11.2007

RedName вне форума Не в сети
Цитата:
Сообщение от silly Посмотреть сообщение
Так вы нашли ответ на свой вопрос?
Пока нет.
  Ответить с цитированием
Старый 03.03.2012, 21:02   #19   
FatSince2010
 
Аватар для SS20
 
Сообщений: 1,785
Регистрация: 07.07.2007
Возраст: 40
Записей в дневнике: 8

SS20 вне форума Не в сети
RedName, в том куске кода, что приведен в теме есть свойство или функция, возвращающая данные из xml в виде IEnumerable. Что мешает из этой коллекции добавить в любую другую, хотя бы даже и Observable, который тоже реализует IEnumerable?
  Ответить с цитированием
Старый 06.03.2012, 09:38   #20   
Смотри сюда
 
Аватар для RedName
 
Сообщений: 418
Регистрация: 16.11.2007

RedName вне форума Не в сети
Цитата:
Сообщение от SS20 Посмотреть сообщение
RedName, в том куске кода, что приведен в теме есть свойство или функция, возвращающая данные из xml в виде IEnumerable. Что мешает из этой коллекции добавить в любую другую, хотя бы даже и Observable, который тоже реализует IEnumerable?
Думал уже над этим.
  Ответить с цитированием
Поиск в теме: 



Быстрый переход:

  Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Support by DrIQ & Netwind