powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
168 сообщений из 168, показаны все 7 страниц
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36630607
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разбираюсь, как с помощью привязки к содержимому xml-файла, используя LINQ to XML, отобразить иерархию в элементе TreeView.
В качестве примера написал такой xml-файл исходных данных, которые следует отобразить в TreeView:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
<?xml version="1.0" encoding="utf-8" ?>
<MyXmlDocument>
  <Category CategoryName="Компьютерная литература" Description ="Различная литература по компьютерной тематике" ToolTipText="Мой раздел">
    <Category CategoryName="Windows-приложения" Description ="Данная ОС наиболее популярна" ToolTipText="Моя ось">
      <Category CategoryName="MS Office 2007" Description ="Офисный пакет программ" ToolTipText="Мой офис"/>
      <Category CategoryName="Продукция компании Autodesk" Description ="Различные САПР" ToolTipText="Мой выбор">
        <Category CategoryName="AutoCAD" Description ="Самый распространённый САПР" ToolTipText="Мой САПР">
          <Book BookName ="AutoCAD 2010. Полещук Н.Н." Description ="Моя книжка по данному САПР" ToolTipText="Справочник"/>
          <Book BookName ="AutoCAD 2007, библия пользователя. (автора не помню)" Description ="Ещё одна моя книжка по данному САПР" ToolTipText="Справочник"/>
        </Category>
        <Category CategoryName="Revit" Description ="новое поколение САПР (BIM)" ToolTipText="Пока ещё не мой САПР"/>        
      </Category>
    </Category>
    <Category CategoryName="Linux-приложения" Description ="Свободно распространяемая ОС" ToolTipText="Интересно, но не сильно распространено"/>
  </Category>
  <Category CategoryName="Классика" Description ="Классическая литература" ToolTipText="Полезно для общего развития">
    <Category CategoryName="Поэзия" Description ="Стихи отечественных авторов" ToolTipText="Для души"/>
    <Category CategoryName="Повести и рассказы" Description ="Повести и рассказы отечественных авторов" ToolTipText="Это тоже для души"/>
  </Category>  
</MyXmlDocument>
Написал конвертер значений:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
    //Конвертер для класса XElement. Задача этого конвертера - извлечение вложенных элементов типа XElement, инкапсулирующих
    //в себе разделы Category.
    public sealed class XmlConverter :IValueConverter
    {

        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            if (value is XElement)
            {
                XElement x = (XElement)value;
                return x.Elements("Category");
            }
            else
            {
                return null;
            }
        }
        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }
После этого создал файл ресурса, в котором определил нужный мне шаблон:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                    xmlns:linq2Xml="clr-namespace:System.Xml.Linq;assembly=System.Xml.Linq"                                      
                    xmlns:local="clr-namespace:WpfGuiProject">
    <!--Шаблон иерархического отображения данных В СЛУЧАЕ ПОДКЛЮЧЕНИЯ К XML-ФАЙЛУ -->
    <HierarchicalDataTemplate DataType="{x:Type linq2Xml:XElement}">
        <!--Указываю источник данных, на основании которого должно формироваться дерево разделов-->
        <HierarchicalDataTemplate.ItemsSource>
            <Binding Path=".">
                <!--Указываю конвертер, который позволяет получить список дочерних элементов типа Category, по отношению к данному-->
                <Binding.Converter>
                    <local:XmlConverter/>
                </Binding.Converter>
            </Binding>
        </HierarchicalDataTemplate.ItemsSource>
        <!--Формирую визуальное представление элемента, отображаемого в дереве разделов-->
        <TextBlock Text="{Binding Path=Attribute[CategoryName].Value}">
                <TextBlock.ToolTip>
                    <Binding Path="Attribute[ToolTipText].Value"/>
                </TextBlock.ToolTip>
        </TextBlock>
    </HierarchicalDataTemplate>
</ResourceDictionary>
После этого, в конструкторе окна размещаю такой код:
Код: plaintext
1.
2.
xml = XElement.Load(@"..\..\XMLFile1.xml");
treeStructure.ItemsSource = xml.Elements("Category");//treeStructure - элемент TreeView
Однако я не получаю разворачивающейся древовидной структуры, состоящей из имён элементов и всплывающих "ТуллТипов", как прописывал это в xaml-разметке шаблона. Результат выглядит так:



Искал в интернете примеры по иерархическому отображению структуры, считанное с использованием linq to xml и реализованное в виде привязки - мало что нашел. На основании того что нашёл и написал выше обозначенный код.

Что я сделал не верно?
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36630907
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Консольное приложение (код ниже) делает по своей сути то же самое, что и код топика, и всё отображает верно:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Linq;

namespace ConsoleApplication2
{
    class Program
    {
        //Шаг смещения дочерних элементов в древовидном отображении
        static string tab = new string(' ', 2);

        //точка входа
        static void Main(string[] args)
        {
            XElement xml = XElement.Load("XMLFile1.xml");
            NewMethod(xml, string.Empty);
            Console.Read();
        }

        //рекурсивный метод построения структуры каталогов (отображает их имена)
        private static void NewMethod(XElement xml, string tab1)
        {
            foreach (XElement item in xml.Elements("Category"))
            {
                Console.WriteLine("{0}{1}", tab1, item.Attribute("CategoryName").Value);//В оригинале аналогичным образом указано, значение какого атрибута следует отображать
                NewMethod(item, tab1 + tab);
            }
        }
    }
}
результат такой:

...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36630936
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если закомментировать часть шаблона, как показано ниже:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
    <!--Шаблон иерархического отображения данных В СЛУЧАЕ ПОДКЛЮЧЕНИЯ К XML-ФАЙЛУ -->
    <HierarchicalDataTemplate DataType="{x:Type linq2Xml:XElement}">
        <!--Указываю источник данных, на основании которого должно формироваться дерево разделов-->
        <HierarchicalDataTemplate.ItemsSource>
            <Binding Path=".">
                <!--Указываю конвертер, который позволяет получить список дочерних элементов типа Category, по отношению к данному-->
                <!--<Binding.Converter>
                    <local:XmlConverter/>
                </Binding.Converter>-->
            </Binding>
        </HierarchicalDataTemplate.ItemsSource>
        <!--Формирую визуальное представление элемента, отображаемого в дереве разделов-->
        <!--<TextBlock Text="{Binding Path=Attribute[CategoryName].Value}">
                <TextBlock.ToolTip>
                    <Binding Path="Attribute[ToolTipText].Value"/>
                </TextBlock.ToolTip>
        </TextBlock>-->
    </HierarchicalDataTemplate>
то результат будет тот же самый, что был показан мною на скрине выше. Отсюда вывод - созданный мною для xml-данных шаблон не работает. Хотелось бы понять почему.
____________________________________
п.с. тихо сам с собою, я веду беседу...
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36631596
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если в отладчике посмотреть, в конвертере вот это условие
...
if (value is XElement)
...
проходит (true)?
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36631633
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 МСУ
Обещанная ссылка на упрощённый вариант исходников (выбросил всё, что связано с БД).
LRЕсли в отладчике посмотреть, в конвертере вот это условие
...
if (value is XElement)
...
проходит (true)?
как я уже писал выше - мой шаблон попросту не работает, и в процессе работы код просто не доходит до этой точки.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36631665
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей, Вы заготовили тестовый проект, как я просил?
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36631696
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАндрей, Вы заготовили тестовый проект, как я просил?
Ну да. В последнем линке - это вообще "лайт" версия, в которой оставлено только всё то, что относится непосредственно к озвученной проблеме. Весь код, относящийся к базе данных выброшен.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36631706
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Compositum
Сорри, я просто увидел в архиве Linq2Sql проект, какой-то ConsoleApplication1 проект и подумал, что Вы нихрена не сделали. Теперь вижу, вы просто их исключили из солюшена ;)
Такой вопрос навскидку: а Вам обязателен ResourceDictionary, напрямую в MainWindow.xaml не хотите HierarchicalDataTemplate закурить?
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36631725
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, у Вас в справочнике прописан ожидаемый тип шаблона: DataType="{x:Type linq2Xml:XElement}"
Следовательно, о каком вообще xml речь? Типизируйте айтемы коллекции к данному типу и подгружайте в дерево.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36631738
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Compositumкак я уже писал выше - мой шаблон попросту не работает, и в процессе работы код просто не доходит до этой точки.
если в TreeView указать этот шаблон (ItemTemplate="{StaticResource myHierarchicalTemplate}"), то все будет работать...
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36631743
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУCompositum
Сорри, я просто увидел в архиве Linq2Sql проект, какой-то ConsoleApplication1 проект и подумал, что Вы нихрена не сделали. Теперь вижу, вы просто их исключили из солюшена ;)
Такой вопрос навскидку: а Вам обязателен ResourceDictionary, напрямую в MainWindow.xaml не хотите HierarchicalDataTemplate закурить?
Это сути проблемы не изменит. Я предпочитаю выносить ресурсы за рамки xaml-разметки элемента, т.к. таким ресурсом (в случае необходимости) можно будет воспользоваться не только в MainWindow.xaml
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36631745
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати, Dictionary1.xaml в примере не подгружается, шаблон не имеет ключа, я задал ему x:Key="myHierarchicalTemplate" и перенес в Application.Resources - все заработало
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36631758
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
<TreeView Name="treeStructure" Margin="2" Grid.Row="1"
             ItemsSource="{Binding Path=Root.Elements}"              
             ItemTemplate="{StaticResource template}"
/>

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                    xmlns:linq2Xml="clr-namespace:System.Xml.Linq;assembly=System.Xml.Linq"                                        
                    xmlns:local="clr-namespace:WpfGuiProject">

    <!--Шаблон иерархического отображения данных В СЛУЧАЕ ПОДКЛЮЧЕНИЯ К XML-ФАЙЛУ -->
    <HierarchicalDataTemplate x:Key="template">
        <!--Указываю источник данных, на основании которого должно формироваться дерево разделов-->
        <HierarchicalDataTemplate.ItemsSource>
            <Binding Path="Elements">
                <!--Указываю конвертер, который позволяет получить список дочерних элементов типа Category, по отношению к данному-->
                <Binding.Converter>
                    <local:XmlConverter/>
                </Binding.Converter>
            </Binding>
        </HierarchicalDataTemplate.ItemsSource>
        <!--Формирую визуальное представление элемента, отображаемого в дереве разделов-->
        <TextBlock Text="{Binding Path=Attribute[CategoryName].Value}">
                <TextBlock.ToolTip>
                    <Binding Path="Attribute[ToolTipText].Value"/>
                </TextBlock.ToolTip>
        </TextBlock>
    </HierarchicalDataTemplate>
</ResourceDictionary>
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36631760
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
+1 к x:Key, у меня тоже с ним работает. И его нужно привязать к ItemTemplate.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36631768
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LRкстати, Dictionary1.xaml в примере не подгружается, шаблон не имеет ключа, я задал ему x:Key="myHierarchicalTemplate" и перенес в Application.Resources - все заработало
у меня всё подгружается. В Application.Resources ресурсы не переношу принципиально - если это окно использовать в плагинах (например в AutoCAD), то в том случае, когда окошко будет хранить ресурсы в Application.Resources - не получится создать экземпляр этого окна. т.к. там приходится создавать окно так:
Код: plaintext
MyWin win = new MyWin(); 
А ежели в XAML-разметке MyWin будет ссылка на ресурс, хранящийся в Application.Resources, то таким образом не удастся создать экземпляр класса MyWin, т.к. это означает, что сначала нужно создать экземпляр приложения и затем, при создании экземпляра MyWin, как-то указать ему, в экземпляре какого класса (производного от Application) искать ресурсы. Это как-то геморно.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36631779
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Относительно ключа - тогда уж лучше прописывать как-то так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                    xmlns:linq2Xml="clr-namespace:System.Xml.Linq;assembly=System.Xml.Linq"                                        
                    xmlns:local="clr-namespace:WpfGuiProject">

    <!--Шаблон иерархического отображения данных В СЛУЧАЕ ПОДКЛЮЧЕНИЯ К XML-ФАЙЛУ -->
    <HierarchicalDataTemplate x:Key="{x:Type linq2Xml:XElement}" DataType="{x:Type linq2Xml:XElement}">
        <!--Указываю источник данных, на основании которого должно формироваться дерево разделов-->
        <HierarchicalDataTemplate.ItemsSource>
            <Binding Path=".">
                <!--Указываю конвертер, который позволяет получить список дочерних элементов типа Category, по отношению к данному-->
                <Binding.Converter>
                    <local:XmlConverter/>
                </Binding.Converter>
            </Binding>
        </HierarchicalDataTemplate.ItemsSource>
        <!--Формирую визуальное представление элемента, отображаемого в дереве разделов-->
        <TextBlock Text="{Binding Path=Attribute[CategoryName].Value}">
                <TextBlock.ToolTip>
                    <Binding Path="Attribute[ToolTipText].Value"/>
                </TextBlock.ToolTip>
        </TextBlock>
    </HierarchicalDataTemplate>
</ResourceDictionary>
теоретически, в этом случае, если мне не изменяет память, шаблон будет автоматически применяться ко всем встречающимся XElement
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36631787
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
однако я по прежнему не получаю нужного результата
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36631802
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Compositumоднако я по прежнему не получаю нужного результата
Я не понимаю смысла Вашего конвертера. Он как-бы должен отбирать элементы Category. Дык они и так биндятся:

Код: plaintext
treeStructure.ItemsSource = XElement.Load(@"..\..\XMLFile1.xml").Elements("Category");

Во-вторых, в метод XmlConverter.Convert приходит не XElement, а ReadOnlyObservableCollection.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36631905
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ
Я не понимаю смысла Вашего конвертера. Он как-бы должен отбирать элементы Category. Дык они и так биндятся:
Код: plaintext
treeStructure.ItemsSource = XElement.Load(@"..\..\XMLFile1.xml").Elements("Category");
Это лишь первый уровень иерархии. Он должен отбирать дочерние элементы Category элемента Category.
[quot МСУ]в метод XmlConverter.Convert приходит не XElement, а ReadOnlyObservableCollection.
Если задать шаблону ключ:
Код: plaintext
1.
<HierarchicalDataTemplate x:Key="xxx" DataType="{x:Type linq2Xml:XElement}">
и затем привязать его в xaml-разметке элемента TreeView:
Код: plaintext
<TreeView Name="treeStructure" Margin="2" Grid.Row="1" ItemTemplate="{StaticResource ResourceKey=xxx}" />
то древовидная структура строится. Спасибо.
Я не понимаю такого момента - почему такая разметка:
Код: plaintext
<HierarchicalDataTemplate x:Key="{x:Type linq2Xml:XElement}" DataType="{x:Type linq2Xml:XElement}">
не даёт желанного результата. (((
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36631931
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CompositumЯ не понимаю такого момента - почему такая разметка:
Код: plaintext
<HierarchicalDataTemplate x:Key="{x:Type linq2Xml:XElement}" DataType="{x:Type linq2Xml:XElement}">
не даёт желанного результата. (((
Вы хоть сами поняли, что написали? :)
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36631950
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУCompositumЯ не понимаю такого момента - почему такая разметка:
Код: plaintext
<HierarchicalDataTemplate x:Key="{x:Type linq2Xml:XElement}" DataType="{x:Type linq2Xml:XElement}">
не даёт желанного результата. (((
Вы хоть сами поняли, что написали? :)
Конечно Даниил. А Вы разве не в курсе, что назначение ключу подобного имени приводит к тому, что данный шаблон будет автоматом цепляться всеми элементами данного типа (т.е. им не нужно указывать шаблон)?
я это у Криса Андерсона срисовал давно )
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36631971
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
он пишет на эту тему на стр. 374.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36632008
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Compositumя это у Криса Андерсона срисовал давно )
Хм, а, разве, не к Style только можно применять такую фичу? Честно говоря, не знал. Спасибо! :)
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36632025
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУCompositumя это у Криса Андерсона срисовал давно )
Хм, а, разве, не к Style только можно применять такую фичу? Честно говоря, не знал. Спасибо! :)
блиииииин... точно... это только к стилям. извиняюсь тогда всё встаёт на свои места. это меня перемкнуло, что можно и к шаблонам (((
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36632040
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36632105
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Compositumтогда всё встаёт на свои места. это меня перемкнуло, что можно и к шаблонам (((хм...все же непонятно, почему не отрабатывает неявное применение шаблона по типу в случае с HierarchicalDataTemplate
The DataType Property
The DataTemplate class has a DataType property that is very similar to the TargetType property of the Style class. Therefore, instead of specifying an x:Key for the DataTemplate in the above example, you can do the following:

XAML Copy Code
<DataTemplate DataType="{x:Type local:Task}">
<StackPanel>
<TextBlock Text="{Binding Path=TaskName}" />
<TextBlock Text="{Binding Path=Description}"/>
<TextBlock Text="{Binding Path=Priority}"/>
</StackPanel>
</DataTemplate>

This DataTemplate gets applied automatically to all Task objects. Note that in this case the x:Key is set implicitly. Therefore, if you assign this DataTemplate an x:Key value, you are overriding the implicit x:Key and the DataTemplate would not be applied automatically.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36632126
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LRхм...все же непонятно, почему не отрабатывает неявное применение шаблона по типу в случае с HierarchicalDataTemplate

не совсем так. в том коде (полный вариант), который выложен у меня на "сайте" - неявная привязка к классам, сгенерированным Linq to SQL автоматически происходит, однако она не происходит в том случае, когда типом данных является XElement - в этом случае приходится принудительно задавать, чтобы заработало.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36632233
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Внёс в xaml-разметку окна такое изменение (см. Path):
Код: plaintext
1.
2.
3.
4.
        <!--Отображаем примечания для выбранного в иерархии элемента-->
        <GroupBox Header="Примечание" Margin="2" Grid.Row="2">
            <TextBlock Name="selectedNodeDescription" TextWrapping="Wrap" Text="{Binding ElementName=treeStructure, Path={StaticResource ResourceKey=descr1}}" />
        </GroupBox>
А в словарь ресурсов добавил это:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
    <!--Примечания по категориям-->
    <PropertyPath x:Key="descr1">
        SelectedItem.Description
    </PropertyPath>
    <PropertyPath x:Key="descr2">
        SelectedItem.Attribute[Description].Value
    </PropertyPath>
Нужно, чтобы при смене источника данных, для элемента selectedNodeDescription свойство Path привязки получало линк на ресурс descr1 (в случае линковки к БД), и линк на ресурс descr2 (в случае линковки к xml).
Можно ли это реализовать как-то средствами разметки?
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36632475
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
добил статейку . )
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36632494
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хорошая статья, Андрей. Респект!
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36632510
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУХорошая статья, Андрей. Респект!
Спасибо Даниил! )
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36633711
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей, еще можно рассмотреть альтернативу Вашей статье. MVVM. Если надо, скину свой пример.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36634264
Silverlight
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36634754
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАндрей, еще можно рассмотреть альтернативу Вашей статье. MVVM. Если надо, скину свой пример.
Честно говоря я не однократно пытался понять, что такое MVVM, но нигде не встречал статьи, в которой на простом, (понятном для меня) примере было бы разъяснено, что это за технология. Сегодня читал это , но яснее не стало. В своих решениях (solution) я всегда стараюсь действовать по следующей схеме:

1. Придумываю логическую схему работы приложения (как что должно работать).

(Все ниже указанные проекты создаются в составе Solution).

2. Создаю проект, в котором определяю набор интерфейсов (interfaces), работающих согласно тому, как это было обозначено в схеме, разработанной в п.1 и посредством которых должны взаимодействовать между собой части приложения (это позволяет в последствии, при необходимости безболезненно заменять любое "звено" приложения другим, поскольку и новый и старый компонент реализуют один и тот же интерфейс). Т.о. можно ядру приложения "скормить совершенно новую версию GUI (например 3D вместо прежнего 2D) - главное, чтобы компоненты реализовывали те же interfaces.

3.Создаю проект, содержащий набор классов для работы с БД (если работаю с БД) - т.к. работаю с MS SQL Server, то это означает, что данный набор классов я генерирую с помощью LINQ to SQL. Причём компоненты проекта реализуют нужные интерфейсы, созданные в п. 2.

2. Создаю проект, содержащий графический интерфейс (GUI), в котором сразу решены вопросы локализации, а так же по максимуму (насколько "соображалки" хватает) реализованы связи в XAML-разметки и используются словари ресурсов, (как правило - вынесенные в отдельные файлы). Причём компоненты проекта реализуют нужные интерфейсы, созданные в п. 2. Все визуальные настройки контролов осуществляются строго через стили (содержащие в своём составе различные шаблоны).

3. Создаю проект, содержащий набор классов, реализующих интерфейсы п. 2 и выполняющие различные необходимые мне операции.

4. Создаю новый проект, в котором созданы классы реализующие интерфейсы, заданные в п.2 и предназначенные для ведения различных логов (журналов) в формате xml (например журнал ошибок).

5. Т.о. теперь всё подготовлено к тому, чтобы собрать ядро приложения, реализующее необходимую логику работы. Причём в этом ядре оперирование выполняется исключительно ИНТЕРФЕЙСАМИ, созданными в п.2, а не экземплярами конкретных классов. Т.о. в заключительной стадии я создаю новый проект, реализующий в себе "ядро" (логику) работы моего приложения. К этому приложению подключаются через референсы все остальные.

Я не знаю как называется мой подход - поскольку, честно говоря, читая статьи аналогичные той, что я указал в линке выше по данному посту, понимания у меня не прибавляется (к сожалению)... (((
А теперь вопрос - на какую технологию это больше смахивает?
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36634767
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я могу написать "статейку", в которой я бы "с нуля" создал приложение пройдя через все указанные мною выше пункты, однако у меня есть до сих пор ряд вопросов, за которые я не садился, но которые должны присутствовать в такой статье:

1. При смене локализации (в настройках приложения), желательно, чтобы изменения вступали в силу сразу, а не при следующем запуске приложения.
2. Я пока не умею создавать полноценные инсталляционные пакеты (причем в статье желательно было бы показать сборку как Setup.exe, так и Install.msi - т.е. два варианта пакетов установки).
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36634787
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и третий, весьма не маловажный пункт - каждый .net-программист должен уметь писать приложения, имея под рукой нужную версию Windows, .Net Framework и обычный Notepad. Т.е. он должен уметь работать с утилитой MsBuild.exe, самостоятельно писать proj-файлы, инкапсулируя в них логику сборки приложения.

К сожалению я не настолько хорошо знаю MsBuild.exe, хотя и не совсем полный ноль в нём (во всяком случае читать proj-файлы и понимать логику того, что в них прописано - могу).


Лично я таких статей не встречал (во всяком случае на русском). А ведь было бы интересно... ИМХО конечно же...
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36634803
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Compositumи третий, весьма не маловажный пункт - каждый .net-программист должен уметь писать приложения, имея под рукой нужную версию Windows, .Net Framework и обычный Notepad. Т.е. он должен уметь работать с утилитой MsBuild.exe, самостоятельно писать proj-файлы, инкапсулируя в них логику сборки приложения.

токо не надо флудить пожалуйста после ответа моего.

но твой не маловажный пункт отражает какой то мир юношеского максимализма.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36634809
Silverlight
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CompositumМСУАндрей, еще можно рассмотреть альтернативу Вашей статье. MVVM. Если надо, скину свой пример.
Честно говоря я не однократно пытался понять, что такое MVVM, но нигде не встречал статьи, в которой на простом, (понятном для меня) примере было бы разъяснено, что это за технология. Сегодня читал это , но яснее не стало. В своих решениях (solution) я всегда стараюсь действовать по следующей схеме:

1. Придумываю логическую схему работы приложения (как что должно работать).

(Все ниже указанные проекты создаются в составе Solution).

2. Создаю проект, в котором определяю набор интерфейсов (interfaces), работающих согласно тому, как это было обозначено в схеме, разработанной в п.1 и посредством которых должны взаимодействовать между собой части приложения (это позволяет в последствии, при необходимости безболезненно заменять любое "звено" приложения другим, поскольку и новый и старый компонент реализуют один и тот же интерфейс). Т.о. можно ядру приложения "скормить совершенно новую версию GUI (например 3D вместо прежнего 2D) - главное, чтобы компоненты реализовывали те же interfaces.

3.Создаю проект, содержащий набор классов для работы с БД (если работаю с БД) - т.к. работаю с MS SQL Server, то это означает, что данный набор классов я генерирую с помощью LINQ to SQL. Причём компоненты проекта реализуют нужные интерфейсы, созданные в п. 2.

2. Создаю проект, содержащий графический интерфейс (GUI), в котором сразу решены вопросы локализации, а так же по максимуму (насколько "соображалки" хватает) реализованы связи в XAML-разметки и используются словари ресурсов, (как правило - вынесенные в отдельные файлы). Причём компоненты проекта реализуют нужные интерфейсы, созданные в п. 2. Все визуальные настройки контролов осуществляются строго через стили (содержащие в своём составе различные шаблоны).

3. Создаю проект, содержащий набор классов, реализующих интерфейсы п. 2 и выполняющие различные необходимые мне операции.

4. Создаю новый проект, в котором созданы классы реализующие интерфейсы, заданные в п.2 и предназначенные для ведения различных логов (журналов) в формате xml (например журнал ошибок).

5. Т.о. теперь всё подготовлено к тому, чтобы собрать ядро приложения, реализующее необходимую логику работы. Причём в этом ядре оперирование выполняется исключительно ИНТЕРФЕЙСАМИ, созданными в п.2, а не экземплярами конкретных классов. Т.о. в заключительной стадии я создаю новый проект, реализующий в себе "ядро" (логику) работы моего приложения. К этому приложению подключаются через референсы все остальные.

Я не знаю как называется мой подход - поскольку, честно говоря, читая статьи аналогичные той, что я указал в линке выше по данному посту, понимания у меня не прибавляется (к сожалению)... (((
А теперь вопрос - на какую технологию это больше смахивает?

Это смахивает на Winforms со всеми его недостатками. Какие сложности с MVVM?
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36634830
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexeiK
токо не надо флудить пожалуйста после ответа моего.
но твой не маловажный пункт отражает какой то мир юношеского максимализма.
мой "не маловажный пункт" говорит о том, что автоматическая генерация кода - это удобно, но не исключает необходимости ПОНИМАНИЯ того, что сгенерировано студией программно (а генерируется, как правило, далеко не один файл). В противном случае это всё равно, что работать спасателем на пляже не умея плавать и надеясь только на надувную резиновую уточку, натянутую на живот - да, это работает, но что если уточка вдруг лопнет (т.е. если понадобится написать код, а VS не будет под рукой, или вдруг проект перестанет собираться), что тогда? Понимание того, КАК это работает, не значит, что нужно всё время писать код в блокноте. Но понимать нужно, а любая статья предназначена для того, чтобы дать ЗНАНИЕ.

п.с. "токо не надо флудить пожалуйста после ответа моего." (с)
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36634831
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Silverlight
Это смахивает на Winforms со всеми его недостатками.
Недостатки в студию (с).
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36634935
Silverlight
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Допиши статью с возможность редактирования данных, чтобы таблиц было десятка два, а не две. Сам увидишь.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36634954
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SilverlightДопиши статью с возможность редактирования данных, чтобы таблиц было десятка два, а не две. Сам увидишь.
Ответ ни о чём.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36634975
Silverlight
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А о чем может быть разговор, если для тебя нет разницы,когда присутствует код во view или нет.
Не в обиду, но статья вредная, о том, как не нужно делать в wpf.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36634981
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SilverlightДопиши статью с возможность редактирования данных, чтобы таблиц было десятка два, а не две. Сам увидишь.
MVVM, как-раз таки, решает не эту задачу, к сожалению. Он дает полноценно тестировать гуй, покрывая автотестами поведение этого гуя, а так же более мягко перенести один вид приложения на другой (например, WPF апп на сильвер апп). Всё.
Большой недостаток MVVM в серьезных приложениях - повышенные сложность/объем кода и его поддержка.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36635000
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SilverlightА о чем может быть разговор, если для тебя нет разницы,когда присутствует код во view или нет.
Не в обиду, но статья вредная, о том, как не нужно делать в wpf.
Написал так, как мне видится решение.
С интересом почитаю, если напишешь и покажешь свой вариант примера.

п.с. я и сам понимаю, что статья далека от совершенства, но приветствую критику по существу, чётко указывающую не верно решённые в примере моменты и предлагающую конкретные альтернативные варианты решения этих моментов. Фраза "статья вредная, о том, как не нужно делать в wpf" не содержит ничего из выше перечисленного, а следовательно не имеет "веса". имхо.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36635007
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 МСУ
Даниил, из перечисленного мною здесь , какие замечания можете дать?
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36635010
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и заодно насчёт вашего примера поподробнее если можно.... В смысле у вас есть оформленный пример, в котором используется MVVM?
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36635014
Silverlight
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробуй понять MVVM, отпадет необходимость в написании конвертеров, можно будет безболененно менять view и тд. Все весьма упростится.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36635026
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CompositumSilverlightА о чем может быть разговор, если для тебя нет разницы,когда присутствует код во view или нет.
Не в обиду, но статья вредная, о том, как не нужно делать в wpf.
Написал так, как мне видится решение.
С интересом почитаю, если напишешь и покажешь свой вариант примера.

это фантастика, сынок (с) Реклама.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36635246
Silverlight
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Compositumи заодно насчёт вашего примера поподробнее если можно.... В смысле у вас есть оформленный пример, в котором используется MVVM?
Я же дал тебе ссылку на статью с примером MVVM. Это классика ее все цитируют.

2 iscrafm, я это сделаю быстрее и проще, чем ты со своей искрой. Для тебя сынок, это, действительно, будет фантастикой. Могу поспорить на твой ноутбук.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36635370
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Silverlight2 iscrafm, я это сделаю быстрее и проще, чем ты со своей искрой. Для тебя сынок, это, действительно, будет фантастикой. Могу поспорить на твой ноутбук.
СеВа, не устраивай здесь очередной цирк. Во-первых, при чем здесь Искра? А во-вторых, могу тебе напомнить, что уже среда, клоун. Быстрее ты собирался еще в выходные сделать. В прочем, речь не об этом, а о твоем примере, который покажет "правильное" понимание того, что такое MVVM. Именно о нем речь и шла, как о фантастике. Не мусорь, плз. Давай пример.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36635422
Silverlight
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
искра при том, что я как-то имел неосторожность сказать, что подобные черные ящики не нужны. После этого ты неровно дышишь.

Пример будет простой и кода в нем практически не будет:
1. Генерим в ЕF два класса: MyList, ListItem. В ListItem нужно будет задать ленивую выборку дочерней коллекции.
2. Создаем пустой контроллер, наследуясь от базового
MyListController : ListController<MyList> {}.
Он осуществляет выборку данных, затем вызывает сервис для отображения окна.View создается автоматически
3. View тоже не содержит кода, а наследуется от базового
4. В zaml к кнопкам делаем привязку к команде вызова нужного окна.

Минимум кода и телодвижений. При этом у меня полный контроль в отличии от твоей искры, в любой момент можно внести изменения.
Мультик сделаю чуть позже, сейчас на эту показуху нет времени.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36635574
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Compositum2 МСУ
Даниил, из перечисленного мною здесь , какие замечания можете дать?
Замечаний, как таковых нет, просто описано сумбурно и много текста. Напоминает какой-то свой специфический паттерн "Начало получения функциональной спецификации - ... - Конец разработки". Вообщем, ничего конкретного сказать не могу по Вашему варианту.

Compositumи заодно насчёт вашего примера поподробнее если можно.... В смысле у вас есть оформленный пример, в котором используется MVVM?
Сева опередил. Поюзайте дерево на MVVM с кодепрожекта, хороший пример.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36635707
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Silverlight
Спасибо за линк, обязательно прочту его, на данный момент читаю это , затем хочу прочесть это (всё-таки на русском...). После чего возьмусь за вашу ссылку и ещё за эту .

2 iscrafm
Прошу вас, давайте не будем начинать грызню.

p.s. Мне нужно будет написать плагин для AutoCAD (библиотека блоков). GUI будет полностью написан на WPF, блоки будут храниться в файлах, поскольку сериализовать их в поток байтов не удастся (к сожалению). В настройках плагина можно будет выбрать тип хранилища: файловая система или БД MS SQL Server. В общем-то плагин на 90% уже написан, но хочу разобраться с MVVM и переписать его, оформив всё в виде статьи. Т.е. это получится реальный пример из жизни - библиотека предназначена для корпоративного использования проектировщиков, работающих в САПР AutoCAD. В БД не десять таблиц, но и не две:



Скрины GUI сейчас показывать не буду, т.к. хочу их полностью переделать (упростить).
Затем с интересом выслушаю конструктивные замечания по опубликованному мною и, в случае необходимости, внесу корректирующие изменения. Линк выложу либо в этом топике, либо создам новый.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36635712
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
п.с. авторпоскольку сериализовать их в поток байтов не удастся (к сожалению).
"Их" - это блоков, а не файлов (уточнение).
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36635828
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей, накидал Вам простой пример MVVM (на моих любимых DelegateCommand). Смотрите. Будут вопросы - задавайте.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36635831
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vs2010, забыл уточнить.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36635844
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Там есть два варианта работы самой модели: Book и Users. В первой модель оснащена логикой по выдаче и сдаче товара. Во второй - логики нет, она перенесена в свою вьюмодель (UsersViewModel).
Наиболее правильным является второй вариант, имейте это ввиду.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36635850
Silverlight
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если плагины, то смотри MEF. Входит в состав net 4(system.componentmodel.composition), на нем реализована поддержка плагинов в VS 2010. Специально разрабатывался для поддержки расширений. Серилизовать в байты не нужно, оформляешь свои компоненты в виде dll, каждая экспотируемая часть(parts - визуальный контрол, сервисы, viewmodel, etc) должна содержать аттрибут Export, затем МЕF контейнеру задаешь DirectoryCatalog для композиции, он загружает dll из этого каталога, регистрирует parts, их рагистрацию можно отследить и обработать(зарегистрировать пункты меню, выполнить определенные действия и тд). Если стоит аттрибут Import, то нужное свойство или метод, автоматически инжектятся(можно обойтись без DI контейнеров). Весьма мощное и удобное средство
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36635854
Silverlight
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
МСУ, правильный пример дал
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36635884
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SilverlightМСУ, правильный пример дал
Код юзали? Вариант с Book:ViewModelBase мне не нравится, хотя так многие делают, как я заметил.
По мне, более вкусным вариантом является User:ViewModelBase + UsersViewModel:ViewModelBase. Оно как-бы разделяет принципы логики.
Хотя для тех же автотестов по-барабану, как использовать, борщ тот же самый.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36635888
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UsersViewModel криво назвал. Нужно UserViewModel. Ну да ладно, Композитум поймёт, что к чему.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36635895
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУUser:ViewModelBase + UserViewModel:ViewModelBase
В чем плюс использования ORM EF или Linq 2 SQL. В том, что в автогенерируемых маппингах (сущностях) уже реализован INotifyPropertyChanged, и поэтому надобность в User:ViewModelBase отпадает.
Получается так: User + UserViewModel:ViewModelBase
Вариантов остается так же два: вносить логику в User (через дополнительный partial класс) или писать UserViewModel. Я склоняюсь к UserViewModel, как уже говорил.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36635898
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SilverlightВходит в состав net 4(system.componentmodel.composition)
Спасибо, я обязательно посмотрю данную тему применительно к версиям AutoCAD 2011 (которая уже вышла) и выше, но к сожалению, по факту наши пользователи работают с версией AutoCAD 2009, который для части своего функционала использует .Net Framework 3.0. Мне удаётся подключать к нему плагины, написанные на .Net 3.5, но подключить то, что написано на .net 4.0 не удаётся - не ест он это...
Т.о. на данный момент я ограничен в использовании версий фрэймворка... (((
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36635906
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАндрей, накидал Вам простой пример MVVM (на моих любимых DelegateCommand). Смотрите. Будут вопросы - задавайте.
спасибо! буду разбираться )
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36635912
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CompositumМне удаётся подключать к нему плагины, написанные на .Net 3.5, но подключить то, что написано на .net 4.0 не удаётся - не ест он это...
Т.о. на данный момент я ограничен в использовании версий фрэймворка... (((
Почему? Что мешает доустановить юзверю четвертый фрейм? Благо, хорошо сжали - дистриб вышел в пол-сотни метров.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36635955
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Compositumзатем хочу прочесть это (всё-таки на русском...)
Вот это
[img=http://i.msdn.microsoft.com/cc785479.fig11(ru-ru).gif]
выбросьте в печку и не насилуйте моск, оно в впф не нужно.
Для ASP.NET (хотя есть нормальный ASP.NET MVC для этого предназначенный), для WinForms (со скрипом) - самое оно. Писать свои селектед евенты, презентёры и объединяющие вью - проще отстрелить себе моск.
Вот это
[img=http://i.msdn.microsoft.com/cc785479.fig10(ru-ru).gif]
самое оно.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36636053
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ
Почему? Что мешает доустановить юзверю четвертый фрейм? Благо, хорошо сжали - дистриб вышел в пол-сотни метров.
В каталоге, содержащем acad.exe имеется и файл acad.exe.config со следующим содержимым:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<configuration>
   <startup>
<!--We always use the latest version of the framework installed on the computer. If you
are having problems then explicitly specify .NET  2 . 0  by uncommenting the following line.-->
		<supportedRuntime version="v2.0.50727"/>
   </startup>
<!--All assemblies in AutoCAD are fully trusted so there's no point generating publisher evidence-->
   <runtime>        
	<generatePublisherEvidence enabled="false"/>    
   </runtime>
</configuration>
Ежели я поменяю версию Runtime на v4.0.30319 (дабы работа шла через 4-й фрэйм), то это всё равно не позволит запускать в AutoCAD 2009 плагины, написанные на .Net 4.0:
Сообщение, получаемое при попытке подключить плагин, написанный на .Net 4.0
Command: netload
Cannot load assembly. Error details: System.BadImageFormatException: Could not
load file or assembly 'file:///I:\Visual Studio
2010\Projects\AcadPlagin3\AcadPlagin3\bin\Debug\AcadPlagin.dll' or one of its
dependencies. This assembly is built by a runtime newer than the currently
loaded runtime and cannot be loaded.
File name: 'file:///I:\Visual Studio
2010\Projects\AcadPlagin3\AcadPlagin3\bin\Debug\AcadPlagin.dll'
at System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase,
Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark,
Boolean throwOnFileNotFound, Boolean forIntrospection)
at System.Reflection.Assembly.nLoad(AssemblyName fileName, String codeBase,
Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark,
Boolean throwOnFileNotFound, Boolean forIntrospection)
at System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef,
Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
at System.Reflection.Assembly.InternalLoadFrom(String assemblyFile, Evidence
securityEvidence, Byte[] hashValue, AssemblyHashAlgorithm hashAlgorithm,
Boolean forIntrospection, StackCrawlMark& stackMark)
at System.Reflection.Assembly.LoadFrom(String assemblyFile)
at Autodesk.AutoCAD.Runtime.ExtensionLoader.Load(String fileName)
at loadmgd()

WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value
[HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure
logging.
To turn this feature off, remove the registry value
[HKLM\Software\Microsoft\Fusion!EnableLog].

Эту ошибку получаю в AutoCAD 2009 (т.е. как я понял - автокад 2009 игнорирует версию указанного мною фрэйма и грузит ту, что ему больше нравится), а в AutoCAD 2011 всё работает. Т.о. делаю вывод, что в AutoCAD 2009 не удастся заюзать библиотеки, написанные на .Net 4.0. Либо вместо v4.0.30319 нужно прописать что-то другое, что укажет на версию 4-го фрэйма.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36636149
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СеВа, речь не идет об Искре (при чем она здесь вообще, знает только твое воспаленное сознание), речь идет о "правильном" понимании MVVM, которое ты обещал продемонстрировать . Мне интересно только это и ничего более. Ты как полный неадекват приплетаешь ее везде, когда не можешь родить банальный пример, подтверждение своих слов. Не начинай сварку.


OFF - исправление неточностей

Искра не является черным ящиком.
В Искре вообще нет кода, даже практически, как ты говоришь.
полный контроль и в любой момент можно внести изменения.
по принципам, которые позже описаны как MVVM она живет с 2003 года
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36636174
Silverlight
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CompositumSilverlightВходит в состав net 4(system.componentmodel.composition)
Спасибо, я обязательно посмотрю данную тему применительно к версиям AutoCAD 2011 (которая уже вышла) и выше, но к сожалению, по факту наши пользователи работают с версией AutoCAD 2009, который для части своего функционала использует .Net Framework 3.0. Мне удаётся подключать к нему плагины, написанные на .Net 3.5, но подключить то, что написано на .net 4.0 не удаётся - не ест он это...
Т.о. на данный момент я ограничен в использовании версий фрэймворка... (((

mef.codeplex.com - вариант для 3.5
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36636200
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CompositumТ.о. делаю вывод, что в AutoCAD 2009 не удастся заюзать библиотеки, написанные на .Net 4.0. Либо вместо v4.0.30319 нужно прописать что-то другое, что укажет на версию 4-го фрэйма.
Ну хз, я в автокаде лам. Странно, что они жестко привязалсиь к версии фрейма... Какая им нафик разница какой версии CLR будет байткодить MSIL, зачем программистам так руки скручивать...
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36636206
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SilverlightCompositumSilverlightВходит в состав net 4(system.componentmodel.composition)
Спасибо, я обязательно посмотрю данную тему применительно к версиям AutoCAD 2011 (которая уже вышла) и выше, но к сожалению, по факту наши пользователи работают с версией AutoCAD 2009, который для части своего функционала использует .Net Framework 3.0. Мне удаётся подключать к нему плагины, написанные на .Net 3.5, но подключить то, что написано на .net 4.0 не удаётся - не ест он это...
Т.о. на данный момент я ограничен в использовании версий фрэймворка... (((

mef.codeplex.com - вариант для 3.5
Спасибо, обязательно ознакомлюсь, как только дочитаю статьи, посмотрю пример Даниила и пойму, что собой представляет MVVM.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36636226
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ
Ну хз, я в автокаде лам. Странно, что они жестко привязалсиь к версии фрейма... Какая им нафик разница какой версии CLR будет байткодить MSIL, зачем программистам так руки скручивать...
Есть многое на свете [ в AutoCAD ] друг Горацио, что и не снилось нашим мудрецам... (с)
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36636281
Silverlight
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iscrafmСеВа, речь не идет об Искре (при чем она здесь вообще, знает только твое воспаленное сознание), речь идет о "правильном" понимании MVVM, которое ты обещал продемонстрировать . Мне интересно только это и ничего более. Ты как полный неадекват приплетаешь ее везде, когда не можешь родить банальный пример, подтверждение своих слов. Не начинай сварку.


OFF - исправление неточностей

Искра не является черным ящиком.
В Искре вообще нет кода, даже практически, как ты говоришь.
полный контроль и в любой момент можно внести изменения.
по принципам, которые позже описаны как MVVM она живет с 2003 года

Если не черный, в чем я очень сомневаюсь, то монолитный. Можно заменить твои сервера с непонятными протоколами на стандартные, и использовать EF или Ria Services? MVVM был описан давно, но без биндинга xaml и его расширяемости, он неинтересен.
Если использовать стандартные варианты - xaml,SOAP,ORM и отбросить твои уже никому не нужные серверы и скриптовые движки, то от искры ничего не останется.
ЗЫ НА ViewModel у меня все построено. Они создаются автоматически при вызове контроллера(с помощью того же MEF) или это можно переопределить. Мало того, в контроллере можно задавать инициализаторы ViewModel, а в них динамически добавлять свойства и методы для последних. В большинстве случаев переопределять базовые классы ViewModel не приходится. Вся логика вынесена в контроллеры. Кода минимум, будет время специально для тебя сделаю мультик. Тогда сам увидишь почему не нужна твоя Искра.

ЗЫЫ Последняя версия исходников меf на codeplex пошла в 4.0. Под 3.5 она работает точно
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36636374
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SilverlightЕсли не черный, в чем я очень сомневаюсь, то монолитный. Можно заменить твои сервера с непонятными протоколами на стандартные, и использовать EF или Ria Services?

опять в молоко. Можешь использовать EF и Ria Services, не запрещаю. Только при чем здесь Искра? Кстати, если тебе протокол TCP/IP непонятен, то есть просто множество источников инормации в Интернет.


SilverlightНА ViewModel у меня все построено. Они создаются автоматически при вызове контроллера(с помощью того же MEF) или это можно переопределить. Мало того, в контроллере можно задавать инициализаторы ViewModel, а в них динамически добавлять свойства и методы для последних. В большинстве случаев переопределять базовые классы ViewModel не приходится. Вся логика вынесена в контроллеры.

Ничего у тебя не построено. Кого ты вводишь в заблуждение?


SilverlightКода минимум, будет время специально для тебя сделаю мультик. Тогда сам увидишь почему не нужна твоя Искра.

Если за год времени не появилось, то ждать чуда не приходится. Ты просто трепло и фантазер-теоретик.

p.s. вопрос был о хорошем примере, иллюстрирующем сущность MVVM, если ты забыл.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36636434
Фотография Шайтан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАндрей, накидал Вам простой пример MVVM (на моих любимых DelegateCommand). Смотрите. Будут вопросы - задавайте.

ты из Владивостока?

http://megadarja.blogspot.com/2010/04/mvvm-wpf.html
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36636497
Silverlight
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
искра, брось свои еврейские мультики и досужие домыслы. это ты покупаешь левые серверы, я своей головой обхожусь, на древнем барохле не сижу, вместо просмотров фильмов, как ты, смотрю совсем другое.
Приходи в гости, я тебе покажу кусочек программирования
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36636516
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ... на моих любимых DelegateCommand ...DelegateCommand - маразм. Вот самая нормальная реализация ICommand.
(c) мой
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
    public class ViewModelAction : NotifyObject, ICommand
    {
        #region Construct

        public ViewModelAction()
        { }

        public ViewModelAction(Action handler)
        {
            Handler += handler;
        }

        #endregion

        #region Core

        public event Action Handler;
        protected virtual void OnHandler()
        {
            if (Handler != null)
                Handler();
        }

        bool _enabled = true;
        public bool Enabled
        {
            get { return _enabled; }
            set
            {
                if (_enabled == value)
                    return;

                _enabled = value;
                OnPropertyChanged(F_Enabled);
                _canExecuteChanged(this, EventArgs.Empty);
            }
        }
        public const string F_Enabled = "Enabled";

        public void Execute()
        {
            if (Enabled)
                OnHandler();
        }

        #endregion

        #region ICommand Members

        bool ICommand.CanExecute(object parameter)
        {
            return Enabled;
        }

        EventHandler _canExecuteChanged = delegate { };
        event EventHandler ICommand.CanExecuteChanged
        {
            add { _canExecuteChanged += value; }
            remove { _canExecuteChanged -= value; }
        }

        void ICommand.Execute(object parameter)
        {
            Execute();
        }

        #endregion
    }
ЗЫ: Ключевой момент - свойство Enabled.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36636544
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Модератор: Воздерживаемся от оскорблений. 1 предупреждение.
Касается обоих.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36636577
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ШайтанМСУАндрей, накидал Вам простой пример MVVM (на моих любимых DelegateCommand). Смотрите. Будут вопросы - задавайте.

ты из Владивостока?

http://megadarja.blogspot.com/2010/04/mvvm-wpf.html

Сравни её пример и мой. Задумайся над своим вопросом.
P.S. За основу взял этот пример, чтоб с нуля Композитуму не писать.

Алексей КDelegateCommand - маразм. Вот самая нормальная реализация ICommand
DelegateCommand - не маразм. Обычный враппинг, и только.
Вот самая нормальная реализация ICommand: AttachedCommandBehavior или Microsoft.Expression.Interactivity. Лёша, не придумывайте лисапедов.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36636597
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КDelegateCommand - маразм
Смотрите, сколько букаф у меня получается :)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<!-- Пример событий -->
<Image Source="http://www.sql.ru/forum/members/92081.gif">
    <acb:CommandBehaviorCollection.Behaviors>
        <!-- Пример с Action -->
        <acb:BehaviorBinding Event="MouseLeftButtonDown" Action="{Binding DoActionLeftCommand}" CommandParameter="Нажата левая педаль мышки"/>
        <!-- Пример с Command -->
        <acb:BehaviorBinding Event="MouseRightButtonDown" Command="{Binding RightSimpleCommand}" CommandParameter="Нажата правая педаль мышки"/>
    </acb:CommandBehaviorCollection.Behaviors>
</Image>

<!-- Пример команд -->
<Button Content="Clear" Command="{Binding ClearCommand}"/>

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
class MainViewModel : ViewModelBase
{
    public MainViewModel()
    {      
        DoActionLeftCommand = x => MessageBox.Show("Обработчик на Action:" + x.ToString());

        RightSimpleCommand = new SimpleCommand
        {
            ExecuteDelegate = x => MessageBox.Show("Обработчик на Command:" + x.ToString()),
            CanExecuteDelegate = x => true
        };

        ClearCommand = new SimpleCommand
        {
            ExecuteDelegate = x => MessageBox.Show("Нажата кнопка!"),
            CanExecuteDelegate = x => true
        };        
    }    

    public Action<object> DoActionLeftCommand { get; private set; }
    public ICommand RightSimpleCommand { get; private set; }
    public ICommand ClearCommand { get; private set; }
}

P.S. Согласный "свой" вариант засунуть в печку?
P.S2. Не пишите лисапедов, уже всё написано. DelegateCommand - самое простое для понимания, о котором (понимании) меня просил Андрейка Композитный.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36636619
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАндрейка Композитный.
МСУ, может как-то будем фильтровать звуки?
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36636626
Фотография Мусичка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CompositumМСУАндрейка Композитный.
МСУ, может как-то будем фильтровать звуки?
Ну это же лучше, чем просто Композ.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36636744
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ
Код: plaintext
1.
2.
3.
4.
        RightSimpleCommand = new SimpleCommand
        {
            ExecuteDelegate = x => MessageBox.Show("Обработчик на Command:" + x.ToString()),
            CanExecuteDelegate = x => true
        };
Я же говорю, ключевой момент - свойство Enabled. С DelegateCommand проблемы начинаются, когда CanExecuteDelegate посложнее чем x => true .
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36636838
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КЯ же говорю, ключевой момент - свойство Enabled. С DelegateCommand проблемы начинаются, когда CanExecuteDelegate посложнее чем x => true .
Да п о лно Вам. Можно пойди в обход и биндить UIElement.IsEnabled на своё условие в зависимости от логики, представленной в ViewModel. Enabled - это ведь не панацея. Роль CanExecute делегата состоит не в IsEnabled, а в факте "можно или нельзя" выполнить команду. А Enabled это уже гуевые рюшечки, чтоб уж "наверняка".
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36636885
Silverlight
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Алексей КМСУ
Код: plaintext
1.
2.
3.
4.
        RightSimpleCommand = new SimpleCommand
        {
            ExecuteDelegate = x => MessageBox.Show("Обработчик на Command:" + x.ToString()),
            CanExecuteDelegate = x => true
        };
Я же говорю, ключевой момент - свойство Enabled. С DelegateCommand проблемы начинаются, когда CanExecuteDelegate посложнее чем x => true .
У тебя будут другие проблемы - утечка памяти(это происходило в Prism). Должны быть WeakReferenceHandler
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36636978
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КЯ же говорю, ключевой момент - свойство Enabled. С DelegateCommand проблемы начинаются, когда CanExecuteDelegate посложнее чем x => true .
Да п о лно Вам. Можно пойди в обход и биндить UIElement.IsEnabled на своё условие в зависимости от логики, представленной в ViewModel.Зачем идти в обход и плодить свойства, если нормальное решение занимает пару десятков строк велосипедокода?

SilverlightУ тебя будут другие проблемы - утечка памяти(это происходило в Prism). Должны быть WeakReferenceHandlerЗаменить на WeakReferenceHandler несложно. Я видел это в Призме, но не понял зачем. Кажется там в коментариях было что-то про производительность.

Что за утечки памяти? Если забывать потом отписываться от событий там где нужно? Если нет, то можно показательный пример?
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36637014
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КЗачем идти в обход и плодить свойства, если нормальное решение занимает пару десятков строк велосипедокода?
А зачем придумывать какую-то логику в модели, "посложнее чем x => true"? CanExecuteDelegate решит любую задачу, которая будет описана в ViewModel.
Если ViewModel не обладает этой информацией - Вы не правильно спроектировали ViewModel.
И тогда не будет никаких десятков строк велосипедокода.
x => true это, конечно же, для примера. Сюда можно вставить сколь угодно сложное условие. Главное, чтобы исходные данные были во ViewModel.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36637024
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУСюда можно вставить сколь угодно сложное условие. Главное, чтобы исходные данные были во ViewModel.Разумеется, все исходные данные во ViewModel есть. Причём, это одна из причин почему я отказался от CommandParameter.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36637038
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУCanExecuteDelegate решит любую задачу, которая будет описана в ViewModel.Только вот незадача, как определить момент вызова CanExecuteChanged, когда там куча входных параметров, перечень которых может постоянно меняться.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36637099
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КМСУCanExecuteDelegate решит любую задачу, которая будет описана в ViewModel.Только вот незадача, как определить момент вызова CanExecuteChanged, когда там куча входных параметров, перечень которых может постоянно меняться.
Всмысле? :) Когда первая строчка кода выполнится в CanExecuteChanged, тогда оно и момент вызова
Кучу параметров можно вынести в приват класс вьюмодели, и ориентироваться по ней (как вариант).
Лёнь, ну что Вы, в самом деле? )
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36637391
Silverlight
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Алексей КМСУCanExecuteDelegate решит любую задачу, которая будет описана в ViewModel.Только вот незадача, как определить момент вызова CanExecuteChanged, когда там куча входных параметров, перечень которых может постоянно меняться.

В базовом классе создаем обработчики для основных операций CanSave, CanEdit,CanFetch,etc, которые зависят от текущего состояния Моdel и самого ViewModel.
Для других вариантов я сделал возможность задавать зависимости полей и делегатов(акции,функции). Те при измении поля или вызова делегата, будет автоматически вызываться сообщение об изменении других полей и/или вызываться нужные делегаты.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36637397
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сева, я ваще не понимаю, зачем делать акции на акции (или акции на команды)? Вьюмодель полноценна и сама может ответить на вопрос CanSave. Нахрена огороды городить?
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36637407
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУВсмысле? :) Когда первая строчка кода выполнится в CanExecuteChanged, тогда оно и момент вызова Ситуаций может быть много, например:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
class MyViewModel
{     
     public MyViewModel()
     {
          C1 = new DelegateCommand(
              v => /*чё-то тут делаем*/,
              v => A1 > 0 && A2 > 0
          );
     }

     public ICommand C1 { get; private set; }

     int _a1;
     public int A1
     {
          get { return _a1; }
          set
          {
               _a1 = value;
               OnPropertyChanged("A1");
               C1.OnCanExecuteChanged(); // Накойхер (с) везьде расставлять эти команды? И ещё не забыть надо, если зависимости изменятся.
          }
     }

     int _a2;
     public int A2
     {
          get { return _a2; }
          set
          {
               _a2 = value;
               OnPropertyChanged("A2");
               C1.OnCanExecuteChanged(); // Накойхер (с) везьде расставлять эти команды? И ещё не забыть надо, если зависимости изменятся.
          }
     }
}

vs

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
class MyViewModel
{     
     public MyViewModel()
     {
          C1 = new MyCommand(
              () => /*чё-то тут делаем*/
          );
     }

     public ICommand C1 { get; private set; }

     int _a1;
     public int A1
     {
          get { return _a1; }
          set
          {
               _a1 = value;
               OnPropertyChanged("A1");
          }
     }

     int _a2;
     public int A2
     {
          get { return _a2; }
          set
          {
               _a2 = value;
               OnPropertyChanged("A2");
          }
     }

     protected override void OnPropertyChanged(string propertyName)
     {
          base.OnPropertyChanged(propertyName);
          С1.Enabled = A1 > 0 && A2 > 0;
     }
}

ЗЫ: Как там называется OnCanExecuteChanged не помню...
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36637434
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SilverlightВ базовом классе создаем обработчики для основных операций CanSave, CanEdit,CanFetch,etc, которые зависят от текущего состояния Моdel и самого ViewModel.
Для других вариантов я сделал возможность задавать зависимости полей и делегатов(акции,функции). Те при измении поля или вызова делегата, будет автоматически вызываться сообщение об изменении других полей и/или вызываться нужные делегаты.Я не стал заморачиваться. Сделал по старинке метод UpdateView, в котором пересчитываются все Enabled и т. п. И вызываю этот метод отовсюду, что может повлечь изменение состояния. Как правило достаточно это вызвать из CurrentItemChanged курсоров по коллекциям.

ЗЫ: Поясните про утечки памяти, интересно.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36637438
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛёняC1.OnCanExecuteChanged(); // Накойхер (с) везьде расставлять эти команды? И ещё не забыть надо, если зависимости изменятся
Эээ, батенька, Вас никто не обязует реализовывать эту пыль. Если в задаче нужно перехватывать - значит реализовываем, если нет, то в топку. Ровным счетом, это относится и к INotifyPropertyChanged.
Посмотрите мой пример, который я дал. В MainViewModel.cs есть ObservableCollection<Book> BooksList. Вот как он описан:

Код: plaintext
public ObservableCollection<Book> BooksList { get; set; }

Где тут OnPropertyChanged? Нету. Почему? Потому, что нах не нужно. Тоже самое и Ваш OnCanExecuteChanged. Оно не обязательно. Так что зря Вы наезжаете на DelegateCommand. Кстати, смотрели RelayCommand? И как? Правильно, одна фигня, что и DelegateCommand :)
Так что не надо ля-ля :)
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36637448
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУЕщё раз... View никак без Вашего участия не сможет определить, когда нужно вызвать CanExecute, чтобы обновить состояния контролов. Вы должны сами явно где-то вызвать CanExecuteChanged. А делать дополнительное свойство для биндинга на IsEnabled контролов глупо.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36637465
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КМСУЕщё раз... View никак без Вашего участия не сможет определить, когда нужно вызвать CanExecute
Это почему? :) Представьте, что пришел виндовой броадкаст мессадж. Во вьюмодели у меня находится перехватчик, который после перехвата осуществляет некий экзекут.
Каким боком тут View и "моё" участие, Лёня? )

Алексей КВы должны сами явно где-то вызвать CanExecuteChanged. А делать дополнительное свойство для биндинга на IsEnabled контролов глупо.
Я не понимаю до сих пор Вашей проблемы. Вы не можете определить точку входа в Ваш CanExecute?
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36637511
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУПредставьте, что пришел виндовой броадкаст мессадж.Мы говорим о событиях, аля ButtonClick.
МСУВы не можете определить точку входа в Ваш CanExecute?Ещё раз. Напрягает инициировать событие ICommand.CanExecuteChanged во всех сеттерах свойств, событиях и т. п., которые могут повлиять на результат метода ICommand.CanExecute, который делегирует вызов подсунутому ему делегату. Это нужно чтобы View своевременно обновило состояние контролов согласно состоянию ICommand (возможности её вызова). Как правило это отражается на значении свойства IsEnabled.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36637516
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУГде тут OnPropertyChanged? Нету. Почему? Потому, что нах не нужно. Тоже самое и Ваш OnCanExecuteChanged. Оно не обязательно .В данной реализации это не так. Если его не будет - не будет обновляться состояние контролов во View.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36637517
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да вы сча о вкусах спорите.
не даром придумали мудрость народную:о вкусах не спорят,чтобы не было бездонных флудилинь :)
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36637551
Silverlight
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
МСУСева, я ваще не понимаю, зачем делать акции на акции (или акции на команды)? Вьюмодель полноценна и сама может ответить на вопрос CanSave. Нахрена огороды городить?
ПОделись, как можно реализовать полноценную viewmodel на все случаи жизни? Мне акции на акции нужны, например, для вызова CanExecute после вызова. Это дает возможность задавать необходимое поведение только в controller'e и не менять(создавать конкретную реализацию) ViewModel. Таким образом можно извлекать ViewModel из DI контейнера на автомате, потому она и не звучала в тех шагах, что я описывал.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36637554
Silverlight
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SilverlightАлексей КМСУ
Код: plaintext
1.
2.
3.
4.
        RightSimpleCommand = new SimpleCommand
        {
            ExecuteDelegate = x => MessageBox.Show("Обработчик на Command:" + x.ToString()),
            CanExecuteDelegate = x => true
        };
Я же говорю, ключевой момент - свойство Enabled. С DelegateCommand проблемы начинаются, когда CanExecuteDelegate посложнее чем x => true .
У тебя будут другие проблемы - утечка памяти(это происходило в Prism). Должны быть WeakReferenceHandler
weakevent
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36637640
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Silverlight weakevent Как я и предполагал.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36637675
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КSilverlight weakevent Как я и предполагал.Собcтвенно, что я предполагаю. :-))

WPF/SL не всегда отписывается от события ICommand.CanExecuteChanged, из-за чего без использования WeakReference возможны утечки памяти. Так ли это?
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36638176
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да. Это так. Ещё один камень в огород WPF. Silverlight, хорошо что обратили на это внимание. Спасибо.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36638179
Silverlight
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Алексей КДа. Это так. Ещё один камень в огород WPF. Silverlight, хорошо что обратили на это внимание. Спасибо.
Это касается всего Net, а не только одного WPF. Объект может быть уничтожен только, если на него нет ссылок в других.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36638181
Silverlight
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Отписку от событий сборщик мусора не делает. Только ручками
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36638394
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SilverlightОтписку от событий сборщик мусора не делает. Только ручкамиНу как бы известен момент закрытия формы, отсоединения контрола от логического дерева и т. п. чтобы отписаться от этого события. От INotifyPropertyChanged.PropertyChanged датабиндинг же корректно отписывается. А тут почему-то нет.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36638482
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это я к тому, что WPF мог бы сделать это сам. Не заставляя нас вручную отписывать обработчики или мутить WeakReference.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36638502
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КSilverlight weakevent Как я и предполагал.
Ипать капать... Вот это жопа. Без комментариев...

ПСыP.S. Шаблон MVVM в моих глазах потерял актуальность в жизни, где на каждых чих создаются EventArgs'ы.
P.S2. Уж лучше по старинке (по формзовски) прикручивать "клики" и иже. Я не готов на каждый чих писать свой IWeakEventListener. Так же, я не собираюсь в один IWeakEventListener влеплять тонну левых универсальных евентов, которые в конкретном случае могут не понадобиться (см. аттач)
P.S3. Я разочарован. Причём, сильно разочарован.
P.S4. Сева, спасибо за ссылку.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36638521
Фотография Шайтан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУШайтанМСУАндрей, накидал Вам простой пример MVVM (на моих любимых DelegateCommand). Смотрите. Будут вопросы - задавайте.

ты из Владивостока?

http://megadarja.blogspot.com/2010/04/mvvm-wpf.html

Сравни её пример и мой. Задумайся над своим вопросом.
P.S. За основу взял этот пример, чтоб с нуля Композитуму не писать.

прастите за долгое молчание - иногда работаю :))

МСУ,

к тому и вопрос, что если уж взял за основу, то так пиши: "добавил аж целый класс" в то-то....

почему то разработчик http://avalondock.codeplex.com/ не постеснялся указать проект, взятый им за основу

а ты чего стесняешься и выдаёшь проектик на 98% сгенерированный с помощью WPF Model-View-ViewModel Toolkit 0.1 за свою нетленку?
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36638574
Silverlight
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
МСУАлексей КSilverlight weakevent Как я и предполагал.
Ипать капать... Вот это жопа. Без комментариев...

+
ПСыP.S. Шаблон MVVM в моих глазах потерял актуальность в жизни, где на каждых чих создаются EventArgs'ы.
P.S2. Уж лучше по старинке (по формзовски) прикручивать "клики" и иже. Я не готов на каждый чих писать свой IWeakEventListener. Так же, я не собираюсь в один IWeakEventListener влеплять тонну левых универсальных евентов, которые в конкретном случае могут не понадобиться (см. аттач)
P.S3. Я разочарован. Причём, сильно разочарован.
P.S4. Сева, спасибо за ссылку.


1.MVVM, как раз и нужен для того, чтобы ничего не знать об интерфейсе и не прикручивать event'ы
2. Event'ы для кликов в Winform ничем не отличаются от WPF. Их тоже нужно уничтожать для верности.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36638585
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шайтанк тому и вопрос, что если уж взял за основу, то так пиши: "добавил аж целый класс" в то-то....
Смысл?
Во-вторых: отрефакторил базовый код и выкинул один класс, логику перенес в другой, написал UsersView.xaml, UsersView.xaml.cs, UsersViewModel.cs и User.cs, воткнул в базовый проект.
Где тут "аж целый класс"?
В-третьих, мне обсолютно пох на то, что базовый код кто-то там писал и я должен об этом упоминать.
В-четвертых, не ипите мне моск, Шайтан :) (по-доброму)

Шайтанпочему то разработчик http://avalondock.codeplex.com/ не постеснялся указать проект, взятый им за основу
Мне абсолютно сиренев этот разработчик и его поделие.

Шайтана ты чего стесняешься и выдаёшь проектик на 98% сгенерированный с помощью WPF Model-View-ViewModel Toolkit 0.1 за свою нетленку?
См. выше.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36638595
Фотография Шайтан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

да лана, не оправдывайся (по-доброму)
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36638598
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Silverlight1.MVVM, как раз и нужен для того, чтобы ничего не знать об интерфейсе и не прикручивать event'ы
Да ну? Исходный код коммандделегатов и им подобных смотрели? Где там происходит отписка?

Silverlight2. Event'ы для кликов в Winform ничем не отличаются от WPF. Их тоже нужно уничтожать для верности.
WinForms это делает сама, не обременяя разработчика этим гемором.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36638614
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Silverlight2. Event'ы для кликов в Winform ничем не отличаются от WPF. Их тоже нужно уничтожать для верности.
Разве?

Вот эту красоту генерит винформзовый дизайнер. Вместе с убиением формы пойдут в печку и все EventHandler'ы.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
protected override void Dispose(bool disposing)
{
    if (disposing && (components != null))
    {
        components.Dispose();
    }
    base.Dispose(disposing);
}
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36638727
Silverlight
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
МСУSilverlight1.MVVM, как раз и нужен для того, чтобы ничего не знать об интерфейсе и не прикручивать event'ы
Да ну? Исходный код коммандделегатов и им подобных смотрели? Где там происходит отписка?

Silverlight2. Event'ы для кликов в Winform ничем не отличаются от WPF. Их тоже нужно уничтожать для верности.
WinForms это делает сама, не обременяя разработчика этим гемором.

Смотрел. В Prism - WeakEvent.

Ничего сама WInForms не делает.Подпишись в глобальном экземпляре на событие в форме, а потом попробуй ее закрыть. Net он и в Африке - Net.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36638787
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SilverlightСмотрел. В Prism - WeakEvent.
Сева, я уже много раз Вам говорил - мне не нужны никаки призм и прочая хрень, мне не нужны левые библиотеки а-ля WPF-Toolkit и подобная муть, мне не нужны левые сборки от левых людей.
Мне нужна готовая полноценная техноогия (WPF).
WPF, который был в VS2008 - просто непригоден к девелопу. Что-бы написать что-то более или менее сложное - нужно у себя в проекте создать сборную солянку различных выпердов и библиотек. В топку.
В VS2010 многое изменилось и многое добавилось. Это хорошо. Но пока WPF сыровата, хотя идея разметки XAML просто гениальна.

SilverlightНичего сама WInForms не делает.Подпишись в глобальном экземпляре на событие в форме, а потом попробуй ее закрыть. Net он и в Африке - Net.
Во-первых, про "глобальный" экземпляр я ничего не говорил. Не нужно вилять в сторону. Во-вторых, когда этот экземпляр будет отдестроен - он автоматом отпишется от тех событий, на которые был когда-то подцеплен. В-третьих, "глобальные" экземпляры с подпиской на "локальные" собыия - это зло, сами знаете. В-четвертых, не уходите от темы.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36638808
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУWPF, который был в VS2008 - просто непригоден к девелопу. Что-бы написать что-то более или менее сложное - нужно у себя в проекте создать сборную солянку различных выпердов и библиотек. В топку.
Вот поэтому для меня (и не только) странно, как Вы, Сева, умудрились в те времена работать и разрабатывать "надежные" безотказные системы на WPF. Как не погляжу, у Вас чуть не в каждом посте ссылки на какие-то сказочные библиотеки, педали и подставки под грабли.
Что у Вас, вообще, за проект такой? Сколько миллионов раз я просил Вас набросать примеры этих проектов, описать идеологии проектов. Ни разу Вы ни сподобились этого сделать. Секретность? Сказочность? Краснобайство? Не знаю. Вот поэтому и сомнения...
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36638819
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И вот сегодня я узнаю о шаблонах WeakEvent. Я в шоке от уведенного...
Сева, вопрос в лоб: Вы можете скинуть простой пример, показывающий практику MVVM + WeakEvent в действии?
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36638883
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУСекретность? Сказочность? Краснобайство?
Все достаточно серьезно. Есть такая профессия . Делать что-то совсем не обязательно, главное - проповедовать и пополнять стадо (по доброму).
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36638981
Silverlight
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
МСУИ вот сегодня я узнаю о шаблонах WeakEvent. Я в шоке от уведенного...
Сева, вопрос в лоб: Вы можете скинуть простой пример, показывающий практику MVVM + WeakEvent в действии?
Идеалогию я уже описывал. Для WPF приктически все есть, единственное, что понадобилось - своя система навигации b базовые классы для MVVM.
Код из Prism для DelegeteCommand
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
 public event EventHandler CanExecuteChanged
        {
            add
            {
                WeakEventHandlerManager.AddWeakReferenceHandler(ref _canExecuteChangedHandlers, value,  2 );
            }
            remove
            {
                WeakEventHandlerManager.RemoveWeakReferenceHandler(_canExecuteChangedHandlers, value);
            }
        }
Ребята знают, что делают, исходники есть, кода мало, всегда можно внести изменения(что и делалось). Этого не скажешь о черных ящиках.

2 iscrafm, рассказывай в другом месте сказки о системах на все случаи жизни, где нет кода совсем . На это могут клюнуть только конфигурасты из 1C.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36638989
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm профессия
Developer Evangelist это сильно

P.S. Когда-то коллекционировал перлы Севы... (по-доброму)
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36639001
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ... хотя идея разметки XAML просто гениальна.Ещё бы XAML не на базе XML сделали... Бытует мнение, что "лень - двигатель прогресса" (с). Оказывается, это не так.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36639014
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SilverlightМСУСева, вопрос в лоб: Вы можете скинуть простой пример, показывающий практику MVVM + WeakEvent в действии?
Идеалогию я уже описывал. Для WPF приктически все есть, единственное, что понадобилось - своя система навигации b базовые классы для MVVM.
Сева, Вы меня не поняли. Еще раз: напишите простой проект , показывающий практику MVVM + WeakEvent в действии.

P.S. Я хочу его запустить и пощупать. Если будут замечания - вынесу их на всеобщее обозрение. Вроде не первый год на форумах, а приходится повторять... Я жду от Вас проекта под любую версию студии.

P.S2. У меня заняло написание проекта MVVM для Композитума минут 15. Ни у кого вопросов не возникло (кроме Шайтана ) - всем всё ясно и понятно. От Вас же искра этого проекта добивался - разрывая гортань. Давайте не будем включать задние скорости и писать множество букв - просто напишите боевую практику MVVM + WeakEvent на простом хеллоу-ворлд. И будет Вам всеобщий респект, уверяю.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36639015
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КЕщё бы XAML не на базе XML сделали... Бытует мнение, что "лень - двигатель прогресса" (с). Оказывается, это не так.
:)
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36639029
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУСева, Вы меня не поняли. Еще раз: напишите простой проект , показывающий практику MVVM + WeakEvent в действии.
Я приаттачил хеллоу-ворлд с WeakEvent. Но этой гадости в реальных проектах я видеть не хочу. Проще самозастрелиться.
На чашах весов (у меня, по крайней мере) стоят: WPF или WinForms. Если я не дождусь от Вас MVVM + WeakEvent, я пакую в печку WPF.
Будьте мужчиной, выполните свою миссию - выделите безграмотным детям реальное пацанское решение без учетки памяти новинки WPF.

В предвкушении пацанского проекта. Жду.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36639045
Фотография Шайтан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
просить-требовать-ждать-... от СеВы проекта - это какя-то игра в ветке "WPF, Silverlight"?

судя по темам - уже около года в неё играют разные люди.

Но СеВа - это ж кремень! никаких своих исходникофф
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36639147
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КЕщё бы XAML не на базе XML сделали... Бытует мнение, что "лень - двигатель прогресса" (с). Оказывается, это не так.
:)
мимо шёл, смотрю шумно тут у вас. Алексей, а что с xml-то не так? Стоит пару раз заглянуть в файлы .ora, чтобы навечно полюбить xml.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36639171
Silverlight
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тоже не зло замечу. Все заштатные ваятели нетленок на sql.ru - редкие хамамы и истерички.Все остальные для них стадо
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36639192
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buredМСУАлексей КЕщё бы XAML не на базе XML сделали... Бытует мнение, что "лень - двигатель прогресса" (с). Оказывается, это не так.
:)
мимо шёл, смотрю шумно тут у вас. Алексей, а что с xml-то не так? Стоит пару раз заглянуть в файлы .ora, чтобы навечно полюбить xml.Да начиная с невозможности закоментировать часть элемента... Ну это ж XML, чё тут рассказывать. :-))
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36639212
Silverlight
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
МСУМСУСева, Вы меня не поняли. Еще раз: напишите простой проект , показывающий практику MVVM + WeakEvent в действии.
Я приаттачил хеллоу-ворлд с WeakEvent. Но этой гадости в реальных проектах я видеть не хочу. Проще самозастрелиться.
На чашах весов (у меня, по крайней мере) стоят: WPF или WinForms. Если я не дождусь от Вас MVVM + WeakEvent, я пакую в печку WPF.
Будьте мужчиной, выполните свою миссию - выделите безграмотным детям реальное пацанское решение без учетки памяти новинки WPF.

В предвкушении пацанского проекта. Жду.

Возьми нормальную реализацию ICommand & IEventAggregator из Prism и получишь все, что нужно.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36639217
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КДа начиная с невозможности закоментировать часть элемента... Ну это ж XML, чё тут рассказывать. :-))
Скорее вего это проблема парсера, а не самого XML как такового. Ведь в ASP.NET'е можно же комментить шматками декларативный код в разрезе элемента.

Developer EvangelistТак. Как я понимаю, Севин "проект" в топке? )
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36639237
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУСева, Вы меня не поняли. Еще раз: напишите простой проект , показывающий практику MVVM + WeakEvent в действии.

...

SilverlightВозьми нормальную реализацию ICommand & IEventAggregator из Prism и получишь все, что нужно.

Ах, да. Чтож это я совсем. Нужно всего-то взять нормальную реализацию ICommand & IEventAggregator из Prism и я получу, что нужно. Отлично!

P.S. Когда меня менеджер спросит: "Данил, мать твою, где программа, которая должна уже работать у заказчика?!!" я тупо отвечу: "Ёп, дак пусть заказчик возьмет нормальную реализацию ICommand & IEventAggregator из Prism и всё будет работать".

P.S2. Великолепно. Как всегда, великолепно.

...
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36639284
Silverlight
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тогда это вопросы не ко мне. Обращайся в Искру, кода там нет, нужно только мышкой ловко орудовать, остальное все само делается.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36639286
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Silverlight
2 iscrafm, рассказывай в другом месте сказки о системах на все случаи жизни, где нет кода совсем . На это могут клюнуть только конфигурасты из 1C.
Сева, конфигурастам, как ты выразился, в отличие от тебя есть что показать. Не нужно к ним так пренебрежительно относиться.
Что касается систем без кода, то ты вроде как сам такое проповедуешь... Запутался совсем?
Что касается меня, то я "сказки" всегда показываю и подтверждаю. Некоторых это даже бесит, потому что против реальности флудить тяжело Так что не нужно.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36639288
Silverlight
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Аргумент железный. Зачем ты нужен заказчику, если он сам пишет?
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36639301
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Примерный схрон Севиных рекомендаций по правильной разработке (namespace sql.ru):

Люди не меняются...Форум №3 - Топик № 345 - 04.03.08 - Установите себе компонент № 57, подтяните референс, используйте инферфейс № 79345
Форум №7 - Топик № 3 - 09.03.08 - Да всё просто, нужно тупо заюзать паттерн № 7
Форум №3 - Топик № 34 - 10.03.08 - Вы все ламеры!
Форум №7 - Топик № 23 - 19.03.08 - Вышла новая версия Expression Blend, там есть компонент № 75, используй интерфейс № 89
Форум №34 - Топик № 12 - 27.03.08 - Вышла новая версия Expression Blend, там есть компонент № 75, используй интерфейс № 89
Форум №4 - Топик № 132 - 30.03.08 - Скачай себе плагин № 739 к студии, который тебе будет генерить нужный xaml
Форум №4 - Топик № 132 - 11.11.09 - ?

... шли годы ...

Форум №9 - Топик № 2 - 27.04.08 - МСУ, ты и твоя братва - ламеры. Мне не нравятся ламеры. Всехнах!

... шли годы ...

Форум №19 - Топик № 7 - 20.05.10 - Где код?!!
Форум №19 - Топик № 7 - 20.05.10 - ICommand и IEventAggregator из Prism. И всё! Искра гавно - IEventAggregator рулит!
Форум №19 - Топик № 7 - 20.05.10 - Чё? Да ты ... нах ... дыщ! ... /мат поскипан/
Форум №19 - Топик № 7 - 20.05.10 - Чё? Да ты ... /Модератор/ Будешь ругаться - побаню!
Форум №19 - Топик № 7 - 20.05.10 - Композитум втыкает в MVVM...

... шли годы ...

Форум №19 - Топик № 7 - 12.12.14 - Композитум: А почему мой автокад + WPF жрет стока ресурсов?

... шли годы ...

Форум №19 - Топик № 7 - 25.10.15 - Скачай Prism, там всё есть!
Форум №19 - Топик № 7 - 25.10.15 - Дай код, что делать, почему всё плохо?
Форум №19 - Топик № 7 - 25.10.15 - Скачай Prism, там всё есть! IEventAggregator тебе поможет.

...
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36639313
Silverlight
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iscrafmSilverlight
2 iscrafm, рассказывай в другом месте сказки о системах на все случаи жизни, где нет кода совсем . На это могут клюнуть только конфигурасты из 1C.
Сева, конфигурастам, как ты выразился, в отличие от тебя есть что показать. Не нужно к ним так пренебрежительно относиться.
Что касается систем без кода, то ты вроде как сам такое проповедуешь... Запутался совсем?
Что касается меня, то я "сказки" всегда показываю и подтверждаю. Некоторых это даже бесит, потому что против реальности флудить тяжело Так что не нужно.
Нет, не запутался. Я за код, который у меня всегда под рукой, который можно изменить под конкретную задачу, чтобы было минимум кода. Если есть глюки, то не сидеть ждать кого-то, а сделать это самому. Выбираю только то,что дает возможность сменить нужный слой без переделки всего остального.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36639325
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Silverlight
Нет, не запутался. Я за код, который у меня всегда под рукой, который можно изменить под конкретную задачу, чтобы было минимум кода. Если есть глюки, то не сидеть ждать кого-то, а сделать это самому. Выбираю только то,что дает возможность сменить нужный слой без переделки всего остального.
пока, к сожалению, у тебя только ссылки на блоги под рукой, гуглишь ты хорошо. Кода не видно.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36639331
Silverlight
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
МСУ, ничего другого я не ожидал. Понятно, что с заказчиками, которые деньги платят и сами потом все пишут,можно особо не напрягаться. Зачем тебе еще WPF? И так все замечательно
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36639336
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сева, призвание евангелиста заключается в том, чтобы на своем примере научить и привлеч паству. Что-то у тебя с этим не очень хорошо получается.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36639342
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmпривлеч
привлечЬ
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36639343
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SilverlightМСУ, ничего другого я не ожидал. Понятно, что с заказчиками, которые деньги платят и сами потом все пишут,можно особо не напрягаться. Зачем тебе еще WPF? И так все замечательно
Это всё на тему "напишите простой проект, показывающий практику MVVM + WeakEvent в действии"?
Скудненько...

P.S.Ничего другого я не ожидал (c)
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36639345
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ
Форум №19 - Топик № 7 - 12.12.14 - Композитум: А почему мой автокад + WPF жрет стока ресурсов?

Форум №19 - это ASP.Net: Там я вопросов не задавал.
Насчёт ресурсов тоже не помню, чтобы задавал вопроса.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36639350
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CompositumМСУ
Форум №19 - Топик № 7 - 12.12.14 - Композитум: А почему мой автокад + WPF жрет стока ресурсов?

Форум №19 - это ASP.Net: Там я вопросов не задавал.
Насчёт ресурсов тоже не помню, чтобы задавал вопроса.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36639363
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Даниил, откуда столько желчи? Вопрос риторический, многие люди действительно не меняются (к сожалению)...
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36639692
Silverlight
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iscrafmСева, призвание евангелиста заключается в том, чтобы на своем примере научить и привлеч паству. Что-то у тебя с этим не очень хорошо получается.
Это тебе привлекать нужно, мне нет в этом необходимости. Зачем мне учить МСУ? Пусть скачает Prism(полно другого материала) и смотрит, но не барское это дело. Я должен разжевать и на блюдечке принести.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36639696
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопросы дилетанта.
Планирует ли M$ сделать свою реализацию MVVM в составе FW?
Каковы дальнейшие тенденции развития WPF (ну и SL до кучи) ?
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36639698
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Цирк :)
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36639718
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bured,

лол.
кто в главных ролях?
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36639726
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Короче, для себя я понял главное - WPF как был несьедобен в vs2008 (отсутствие вменяемой компонентной модели, убогий дизайнер, отсутствие MDI, утечка ресурсов и иже), так он и остался несьедобен в vs2010 (утечка ресурсов). Писать чудо света на сырых технологиях я просто не имею права, особенно если вопрос касается утчеки ресурсов.
Выводы: в топку.
Вводы: Проверенные надежные гуевые технологии, как и раньше: ASP.NET (MVC) и WinForms.

P.S. Всем спасибо.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36639735
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SilverlightiscrafmСева, призвание евангелиста заключается в том, чтобы на своем примере научить и привлеч паству. Что-то у тебя с этим не очень хорошо получается.
Это тебе привлекать нужно, мне нет в этом необходимости. Зачем мне учить МСУ? Пусть скачает Prism(полно другого материала) и смотрит, но не барское это дело. Я должен разжевать и на блюдечке принести.
я думаю он уже давно разобрался во всем. Вопрос стоит "разобрался ли ты?". По наблюдениям, более года ты просто занимаешься репродукцией гугла на SQLRU. Сколько не было просьб показать пример использования - все без ответа. Доходило даже до того, что свои же ссылки на чужие примеры называл примитивными, но более толкового так и показал.
Увы.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36639834
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ни одна нормальная среда программирования (плас-плас, дельфи, васик, повербилдер и иже) или фреймворк (WinForms, ASP.NET) не позволила бы себе такой дури, как ручная отписка от событий (кроме особых случаев, когда это подразумевает логика).
Банально, нахрена мне отписываться от банального хеллоуворлдного Button Click, когда программёр дабл-кликнул батон на форме в дизайнере?
WinForms отписывается и диспоузит экземпляр класса при protected override void Dispose , который тупо генерит дизайнер. Никаких тебе утечек. В ASP.NET вообще всё проще - ASP.NET Page Life Cycle . Когда страничка отдана клиенту, происходит Unload. В плас-пласе, дельфи и иже за этим следят свои Memory/Resource Leak менеджеры а-ля как движок FastMM, который вкусен в Multi-Threaded аппликухах, которые умно юзают Memory Fragmentation (особенно в External DLL). И тому подобное.
Все вменяемые технологии не парят моск программиста такими рутинными вещами, как манагерство памяти (речь не о дельфийских FreeAndNil, а о более Memory Leak).
И тут появляется WPF, а котором я должен для банального евента писать свой IWeakEventListener и свой WeakButtonEventManager. Причём, евентов у меня может быть сколь угодно разных по типу и назначению. Я что, мазохист?
Вы посмотрите на объем кода, который я привел выше. И это для банального Button.MouseDown. Убиться ап стену, нахрен мне это нужно
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36639857
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 МСУ
Странно... В аське Вы мне писали, что Вам вроде как понравилась связка WPF + MVVM (мол это просто супер и т.п.)...
Сейчас пишете совершенно противоположное...
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36639863
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ответ один (я уже писал об этом): всему виной в WPF спешность сдачи технологии, реклама и фантики тоже иногда торопят девелоп. Мало того, разработчики не успели припаять MDI (а это далеко не тривиальная задача), как это сделано в винформзах, так они еще накосячили с внутренним Memory Leak в движке.
На что я слышал ответы ламеров:
1) MDI? Дак это нах не нужно - используйте табы, типа модно. На что я отвечаю: какое их собачье дело, - мне навязывать не нужно. Я сам знаю, что мне нужно использовать. Дайте мне только инструмент. Все вменяемые вин среды дают возможность строить MDI. Где MDI в WPF? Вывод - тупо сроки, тупо не успели...
2) Утечка памяти. Тут вообще абзац. Не успели или накосячили - неважно. Ребята из MS быстренько ваяют статью, датированную ноябрем 2007 года, мол следите за памятью сами, реализовывайте свои менеджеры ресурсов. С какой такой радости, а?

P.S. WPF - замечательная идея, воплощенная в жизнь, паттерн MVVM - порсто идеален, особенно для покрытия автотестами гуя (даже робот не нужен). Но - сыро. А сырая платформа мне и моей компании (я не думаю, что я тут одинок) не нужна . Делу не помогут даже сферические сказочные Prism и IEventAggregator, которые так боится показать в своём хеллоуворлдном проекте наш отец технологий. Угадайте, о ком я говорю?
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36639868
Silverlight
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
МСУИ тут появляется WPF, а котором я должен для банального евента писать свой IWeakEventListener и свой WeakButtonEventManager. Причём, евентов у меня может быть сколь угодно разных по типу и назначению. Я что, мазохист?
Вы посмотрите на объем кода, который я привел выше. И это для банального Button.MouseDown. Убиться ап стену, нахрен мне это нужно

МСУ, я другой код приведу
Код: plaintext
\n <Button Name="" Content="МСУ, думай голово"\n                    Height="23"  Width="141" \n                    Command="{Binding ChangeViewCommand}" CommandParameter="TestView"\n                    />\n
Ну, совсем не напрягает. И никаких утечек
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36639869
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Compositum2 МСУ
Странно... В аське Вы мне писали, что Вам вроде как понравилась связка WPF + MVVM (мол это просто супер и т.п.)...
Сейчас пишете совершенно противоположное...

Андрей, когда Вы уже научитесь читать, а не говорить?

P.S. Для непонятливых: сегодня я узнал страшную новость. WPF - это сплошная утечка ресурсов :)
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36639888
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Silverlight
МСУ, я другой код приведу
Код: plaintext
1.
2.
3.
4.
 <Button Name="" Content="МСУ, думай голово"
                    Height="23"  Width="141" 
                    Command="{Binding ChangeViewCommand}" CommandParameter="TestView"
                    />
Ну, совсем не напрягает. И никаких утечек

Действительно, всё так просто. И зачем мелкософтцы написали эту статью , ума не приложу :)

P.S. Сева, пока не будет проекта, о котором я говорил выше, Ваши жалкие попытки сунуть мне под нос какой-то левый код, ни о чем не говорящий, будут сливаться в туалет. Я хочу говорить с профессиналом, а не с клоуном. К сожалению, делаю вывод, что у нас с Вами ничего не получится. А жаль.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36639931
Silverlight
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MCУ, я тебе давно писал, что нам с тобой не о чем разговаривать. Твой бред неинтересен
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36639978
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подозреваю, что проблема утечки памяти присутствует не только в WPF, однако из-за этого вряд ли кто-то откажется от .net программирования. MSDN рекомендует мониторить память вне зависимости от того, WPF это или нет...
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36640095
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУВыводы: в топку.Нет!
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36640105
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КМСУВыводы: в топку.Нет!
?
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36640114
Silverlight
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Алексей КМСУВыводы: в топку.Нет!
Правильно. В Prism есть нормальные ICommand c реализацией через слабые ссылки.Однако это не значит, что нужно не убирать за собой, как это привык делать МСУ.
Бредовый пример МСУ, показывает только, как не нужно делать в WPF, и только.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36640116
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КМСУВыводы: в топку.Нет!
?Масса преимуществ?

ЗЫ: Все-таки масштабы бедствия с утечкой памяти ты сильно преувеличил.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36640119
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SilverlightОднако это не значит, что нужно не убирать за собой.Но тут проблема в том, что WPF не убирает за собой и в MSDN об этом ни слова. :-) Впрочем, есть простое решение и к этой проблеме можно больше не возвращаться.
...
Рейтинг: 0 / 0
Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
    #36640740
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КМасса преимуществ?
Согласен, тут согласен.
Алексей КЗЫ: Все-таки масштабы бедствия с утечкой памяти ты сильно преувеличил.
Но, так или иначе, утечка есть и это пугает.
...
Рейтинг: 0 / 0
168 сообщений из 168, показаны все 7 страниц
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Иерархическое отображение данных xml-файла в элементе TreeView с помощью привязки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]