public ObservableCollection<StreetViewModel> Streets { get; set; } public StreetsViewModel() { Streets = new ObservableCollection<StreetViewModel>(); Streets.Add(new StreetViewModel(new Street { Name = "Moskovski prospect", CarsVolume = 20, PathStr = "линия кароче" })); }
Сообщение от silly:
Это С#. Вот вопрос мне совсем не понятен.
Сообщение от silly:
Это С#. Вот вопрос мне совсем не понятен.
<?xml version="1.0" encoding="utf-8" ?> <Streets> <Street> <Name>Moskovski prospect</Name> <CarsCount>100></CarsCount> </Street> </Streets>
Сообщение от Spectator:
Замечательно. Пусть будет C#
Вопросов вроде бы с моей стороны не было, тему переименовал, сейчас размещу настоятельную просьбу в названии темы указывать язык программирования в подобных темах.
Сообщение от RedName:
К сожалению, название темы редактировать нельзя. Я и сам хотел поправить.
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); } } } }
Сообщение от scanNE®:
и это кодеры Воронежа? п-ц ! полный п-ц
Сообщение от scanNE®:
и это кодеры Воронежа? п-ц ! полный п-ц
http://msdn.microsoft.com/ru-ru/library/ms668604.aspx
Сообщение от silly:
Да тут как раз первым же постом в теме идет пример добавления объекта в ObservableCollection.
Рискну предположить, у ТС проблемы с пониманием MVVM и построением архитектуры своей поделки.
Сообщение от RedName:
С MVVM и архитектурой всё прекрасно, всё работает.
Сообщение от silly:
Только если в первом посте действительно пример, а не кусок кода из программы. По-моему, для реального разделения M и VM, StreetViewModel и Street стоило бы засунуть в разные коллекции. Также, если StreetViewModel ничем толком не отличается от Street, то можно вообще не реализовывать StreetViewModel, это будет просто лишняя обертка.
Сообщение от silly:
Так вы нашли ответ на свой вопрос?
Сообщение от SS20:
RedName, в том куске кода, что приведен в теме есть свойство или функция, возвращающая данные из xml в виде IEnumerable. Что мешает из этой коллекции добавить в любую другую, хотя бы даже и Observable, который тоже реализует IEnumerable?