powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / TreeViewItem
39 сообщений из 39, показаны все 2 страниц
TreeViewItem
    #38597826
ЧитательX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В XAML-е "посажено" деревце:
Код: c#
1.
<TreeView Name="tv" ....


В коде могу получить элемент данных этого дерева, например:
Код: c#
1.
CData data= tv.SelectedItem as CData;


Вопрос:
Как получить элемент типа TreeViewItem, соответствующий выбранному элементу данных ???
...
Рейтинг: 0 / 0
TreeViewItem
    #38598061
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вроде как LogicalTreeHelper.GetParent(tv.SelectedItem) , но не проверял...
...
Рейтинг: 0 / 0
TreeViewItem
    #38598118
ЧитательX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В этом "деревянном зодчестве" столько сюрпризов.
Собрал деревянную веточку (без использования ItemsSource) и прицепил ее к дереву:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
TreeViewItem root = new TreeViewItem() { Header = "Root" }
TreeViewItem prn = root;
TreeViewItem chl = null;

chl = new TreeViewItem() { Header = "aaa" };
prn.Items.Add(chl);
prn = chl;
			
chl = new TreeViewItem() { Header = "bbb" };
prn.Items.Add(chl);
prn = chl;

chl = new TreeViewItem() { Header = "ccc" };
prn.Items.Add(chl);
prn = chl;

MyTree.Items.Add(root);


Дерево "выросло", но обработчик SelectedItemChanged при мышинном выборе не срабатывает.
Вроде вполне законный способ.
Может чего-то не хватает в настройках дерева?
...
Рейтинг: 0 / 0
TreeViewItem
    #38598281
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LogicalTreeHelper не помог что ли? Да и зачем всё это? Чем здесь MVVM не угодил?
...
Рейтинг: 0 / 0
TreeViewItem
    #38598438
ЧитательX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
C LogicalTreeHelper пытаюсь пока не очень выходит.
На счет MVVM. Пока в нем не работаю, но мне казалось, что работа с TreeView происходит точно также как в обычном WPF.
Хотя утверждать не буду чего не знаю.
Второй пример я рассматривал для того, чтобы на совсем простом примере разглядеть как работает TreeView.
Но, получил непонятное явление - нет реакции на селекцию узла. Это случай когда деревянные данные введены не через ItemsSource, а напрямую через добавление TreeViewItem в коллекции Items Parent-узлов. В этом случае я изначально мог получить TreeViewItem, чтобы потом их не искать. Но на этом пути получил облом.
Так что пока еще ничего не добился.
...
Рейтинг: 0 / 0
TreeViewItem
    #38598674
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЧитательXC LogicalTreeHelper пытаюсь пока не очень выходит.Что там может "не выходить"? :-)
Код: c#
1.
var item = (TreeViewItem)LogicalTreeHelper.GetParent(tv.SelectedItem);


ЧитательXНа счет MVVM. Пока в нем не работаю, но мне казалось, что работа с TreeView происходит точно также как в обычном WPF.В "обычном WPF" делают привязку данных на модель, в данном случае через HierarhicalDataTemplate.
...
Рейтинг: 0 / 0
TreeViewItem
    #38598675
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут пример.
...
Рейтинг: 0 / 0
TreeViewItem
    #38598737
ЧитательX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не получается. См аттач.
...
Рейтинг: 0 / 0
TreeViewItem
    #38598771
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЧитательXНе получается. См аттач.Согласен, не получится. Тогда можно пробежаться по визуальному дереву как-то так:
Код: c#
1.
2.
3.
var item = VisualTreeHelperEx.GetChildrenTree(myTreeView)
    .OfType<TreeViewItem>()
    .First(v => v.DataContext == myTreeView.SelectedItem);


Исходник VisualTreeHelperEx .
...
Рейтинг: 0 / 0
TreeViewItem
    #38598798
ЧитательX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пошел по цепочке собирать исходники для исходников.
...
Рейтинг: 0 / 0
TreeViewItem
    #38598903
ЧитательX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Написал собственный код для "прогулки" по VisualTree.
Но, теперь есть другая проблема. В этом дереве представлены только видимые элементы.
Т.е. если дерево свернуто, то виден только корневой TreeViewItem.
Но, если мне нужно программно найти узел внутри дерева и развернуть эту веточку.
Как искать такой DependencyObject? Его в дереве нет.
...
Рейтинг: 0 / 0
TreeViewItem
    #38598911
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЧитательXНо, теперь есть другая проблема. В этом дереве представлены только видимые элементы.Само собой.
ЧитательXТ.е. если дерево свернуто, то виден только корневой TreeViewItem.
Но, если мне нужно программно найти узел внутри дерева и развернуть эту веточку.
Как искать такой DependencyObject? Его в дереве нет.Надо идти с корня дерева и разворачивать по очереди всех "родителей" целевого элемента дерева.
...
Рейтинг: 0 / 0
TreeViewItem
    #38598925
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зы: В этом случае лучше искать TreeViewItem с помощью ItemContainerGenerator.ContainerFromItem.
...
Рейтинг: 0 / 0
TreeViewItem
    #38599067
ЧитательX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тут, как уж повелось, другая беда. Если узлы дерева не открывались, то
tvi.ItemContainerGenerator имеет атрибут:
Код: c#
1.
Status=NotStarted


и попытка взять TreeViewItem дает null:
Код: c#
1.
tvi.ItemContainerGenerator.ContainerFromItem(DataItem) =>null


Может быть есть способ заставить сгенерить контейнеры для всего дерева не прибегая к его полному раскрытию?
...
Рейтинг: 0 / 0
TreeViewItem
    #38599092
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЧитательXМожет быть есть способ заставить сгенерить контейнеры для всего дерева не прибегая к его полному раскрытию?А зачем? Ведь целью является развёртывание дерева. Открываем. После открытия ItemContainerGenerator будет иметь содержимое, используем его для поиска следующего открываемого элемента.
...
Рейтинг: 0 / 0
TreeViewItem
    #38599167
ЧитательX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Никак нет.
Дерево должно стартовать либо полностью свернутым, либо частично приоткрым, например, развернут только корень.
Потому что если сразу развернуть все дерево, то пользователь визуально окажется где-то глубоко внутри. И каждый раз ему придется совершать операцию выхода на верх и операцию свертывания лишнего. Это очень скоро вызовет буйный протест.
(даже пострадают некоторые люди). Поэтому, начальное состояние дерева это частично свернутое состояние. А отсюда и више указанная проблема.
...
Рейтинг: 0 / 0
TreeViewItem
    #38599228
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЧитательXНикак нет.
Дерево должно стартовать либо полностью свернутым, либо частично приоткрым, например, развернут только корень.
Потому что если сразу развернуть все дерево, то пользователь визуально окажется где-то глубоко внутри. И каждый раз ему придется совершать операцию выхода на верх и операцию свертывания лишнего. Это очень скоро вызовет буйный протест.
(даже пострадают некоторые люди). Поэтому, начальное состояние дерева это частично свернутое состояние. А отсюда и више указанная проблема.Я и не предлагаю разворачивать всё дерево, я предлагаю разворачивать от корня до целевого элемента.
...
Рейтинг: 0 / 0
TreeViewItem
    #38599542
ЧитательX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так вот как до него (до целевого узла) добраться.
Ведь изначально вся цепочка контейнеров (исключая видимый корень) имеют состояние NotSarted и поэтому все их дочернее подмножество узлов недоступно для иерархического прохода.
Было бы хорошо заставить эти контейнеры стартовать (без развертывания!!!).
...
Рейтинг: 0 / 0
TreeViewItem
    #38599782
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЧитательXТак вот как до него (до целевого узла) добраться.
Ведь изначально вся цепочка контейнеров (исключая видимый корень) имеют состояние NotSarted и поэтому все их дочернее подмножество узлов недоступно для иерархического прохода.
Было бы хорошо заставить эти контейнеры стартовать (без развертывания!!!).Само собой, дети создаются после "разворота" родителя. Поэтому, сначала разворачиваем текущий элемент, потом ищем его детей.
...
Рейтинг: 0 / 0
TreeViewItem
    #38601585
ЧитательX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да! я долго бился, чтобы создать все элементы дерева без "разворота". Но, ничего лучшего не нашел чем сделать
root.Expandsubtree();
и тут же все свернуть обратно. В принципе такое решение тоже сойдет.
Погружение в тонкости функционирования TreeView несколько обескураживает. Требуется слишком много рукоприкладства для того, чтобы попользоваться компонентом. Особенно меня удивило слабая связь между элементом данных Data, который привязан к элементу TreeViewItem и самим этим TreeViewItem. Казалось бы они связаны непосредственно, но получить из Data его контейнер не совсем просто. Отдает какой-то "сыростью" модели.
Ну ладно! Поворчал и будет. В общем необходимые действия для работы с деревцем я для себя сформировал.
Спасибо за участие в обсуждении и за подсказки.
...
Рейтинг: 0 / 0
TreeViewItem
    #38601615
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КЧитательXНо, теперь есть другая проблема. В этом дереве представлены только видимые элементы.Само собой.
ЧитательXТ.е. если дерево свернуто, то виден только корневой TreeViewItem.
Но, если мне нужно программно найти узел внутри дерева и развернуть эту веточку.
Как искать такой DependencyObject? Его в дереве нет.Надо идти с корня дерева и разворачивать по очереди всех "родителей" целевого элемента дерева.
Когда дело доходит до такой ручной работы, уже проще кажется MVVM .

Ищите по "Expand all the way up to the root" - как сделать авторазворачиваемые "отсюда и до корня". Как сделать "отсюда и все ветки до конца" - думаю, как-то подобным образом же.

На самом деле без MVVM проще только для самых простых примеров, когда, как вы сказали, "чтобы на совсем простом примере разглядеть как работает TreeView". Когда примеры становятся сложнее, то принцип работы меняется. Без MVVM вам придётся писать кучку методов по обходу и разворачиванию-сворачиванию веток. Где эти методы будут? В воздухе висеть? В некоей библиотеке "хелперов для тривью"? А в MVVM у вас вся логика по работе с вашим тривью инкапсулирована в моделях представления будет.
...
Рейтинг: 0 / 0
TreeViewItem
    #38601643
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320Когда дело доходит до такой ручной работы, уже проще кажется MVVM .Алексей КДа и зачем всё это? Чем здесь MVVM не угодил?
ЧитательXНа счет MVVM. Пока в нем не работаю...
...
Рейтинг: 0 / 0
TreeViewItem
    #38601651
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320На самом деле без MVVM проще только для самых простых примеров, когда, как вы сказали, "чтобы на совсем простом примере разглядеть как работает TreeView". Когда примеры становятся сложнее, то принцип работы меняется. Без MVVM вам придётся писать кучку методов по обходу и разворачиванию-сворачиванию веток. Где эти методы будут? В воздухе висеть? В некоей библиотеке "хелперов для тривью"? А в MVVM у вас вся логика по работе с вашим тривью инкапсулирована в моделях представления будет.Тут не всё так однозначно, есть и другая точка зрения.

Накой мне писать свой класс ViewModel и логику инкапсуляции в него Model, если есть готовый класс TreeViewItem и механизм ItemsControl.ItemContainerGenerator? Разумнее рассматривать класс TreeViewItem как часть ViewModel. Тогда и концепция MVVM применяется и все имеющиеся возможности WPF используются.
...
Рейтинг: 0 / 0
TreeViewItem
    #38601656
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Кuser7320Когда дело доходит до такой ручной работы, уже проще кажется MVVM .Алексей КДа и зачем всё это? Чем здесь MVVM не угодил?
ЧитательXНа счет MVVM. Пока в нем не работаю...
Так я к тому сказал, что проще будет перейти на MVVM. Объём кода в MVVM такой же или меньше, зато структурированности больше. MVVM хуже только для самых простых приложений - там он действительно выглядит ненужным нагромождением монструозных конструкций.

Если что, MVVM можно организовать и для отдельно взятой сущности или участка программы. Можно проще ещё сделать - сделать только VM и V. Собственно, WPF только вокруг ВМ и В и построен. Я так написал одно приложеньице, когда надо было к готовой логике интерфейсик приделать.

Правда, пришлось (и тому придётся, кто собирается это для своей программы делать) написать некоторую логику в сеттерах и командах, а не просто свойства модели присваивать-считывать, т. к. моя "готовая логика", к которой я интерфейс приделывал, явно не была заточена под MVVM. Но всё равно всё сводится либо к написанию своей собственной "модели"-адаптера для работы с чужой логикой и моей структурой ВМ-В, либо эту модель-адаптер придётся по коду геттеров-сеттеров и команд во вью-модели раскидывать. Короче, нужен будет адаптер. Но даже с таким подходом это лучше, чем городить ручные обходы дерева и методы сворачивания-разворачивания узлов.
...
Рейтинг: 0 / 0
TreeViewItem
    #38601662
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КРазумнее рассматривать класс TreeViewItem как часть ViewModel. Тогда и концепция MVVM применяется и все имеющиеся возможности WPF используются.
Там когда привязку делаешь, TreeViewItem автоматом генерится как обёртка над привязываемым значением из модели представления, вроде.

Я, правда, не понял, почему у ТСа не отрабатывается событие SelectedItemChanged. У меня через MVVM к тому же событию команда привязана и всё отрабатывается, когда я кликаю на невыбранный айтим.
...
Рейтинг: 0 / 0
TreeViewItem
    #38601669
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320Алексей КРазумнее рассматривать класс TreeViewItem как часть ViewModel. Тогда и концепция MVVM применяется и все имеющиеся возможности WPF используются.
Там когда привязку делаешь, TreeViewItem автоматом генерится как обёртка над привязываемым значением из модели представления, вроде.
Я к тому, что TreeViewItem больше относится к генерации представления. Т. е. если охота вручную TreeViewItem добавлять, то в MVVM это лучше делать в коде поддержки - этакая вью-вью-модель.

Похожая ситуация, кстати, возникает и когда используешь какой-нибудь knockout в asp.net mvc - так в нокауте тоже есть модели. Тогда эти модели это что, в свете того, что у нас уже есть модели на сервере - "вью модели" или "модели на клиенте"?
...
Рейтинг: 0 / 0
TreeViewItem
    #38601703
ЧитательX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
user7320Я, правда, не понял, почему у ТСа не отрабатывается событие SelectedItemChanged. У меня через MVVM к тому же событию команда привязана и всё отрабатывается, когда я кликаю на невыбранный айтим.
В своих исследованиях по связыванию Data и TreeViewItem я пытался зайти через "заднее крыльцо" - я создавал дерево путем создания элементов TreeViewItem и втыкания их в TreeView. В этом случае, под рукой был и элемент Data и TreeViewItem.
Однако, при таком создании TreeViewItem нужно было самостоятельно соорудить и обработчик для SelectedItemChanged (а может быть я ошибаюсь). А иначе, полученное деревце никак не реагирует на то что в него кто-то тычет мышью.
...
Рейтинг: 0 / 0
TreeViewItem
    #38601767
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320user7320пропущено...

Там когда привязку делаешь, TreeViewItem автоматом генерится как обёртка над привязываемым значением из модели представления, вроде.
Я к тому, что TreeViewItem больше относится к генерации представления. Т. е. если охота вручную TreeViewItem добавлять, то в MVVM это лучше делать в коде поддержки - этакая вью-вью-модель.Я о том, что не надо самому писать аналог класса TreeViewItem со свойствами Content, IsExpanded, IsSelected и т. п.
...
Рейтинг: 0 / 0
TreeViewItem
    #38601848
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Кuser7320пропущено...

Я к тому, что TreeViewItem больше относится к генерации представления. Т. е. если охота вручную TreeViewItem добавлять, то в MVVM это лучше делать в коде поддержки - этакая вью-вью-модель.Я о том, что не надо самому писать аналог класса TreeViewItem со свойствами Content, IsExpanded, IsSelected и т. п.
Тогда по этой логике и CollectionView может заменить коллеции из VM?

Ведь "аналог" класса TreeViewItem во VM не просто свойства такие содержит, но и логику по ленивой загрузке и прочую логику. Например, отрисовку крестика ("можно развернуть"), если айтим содержит потомков, или другого рисунка, если не содержит. Много чего ещё. А как "расширить" подобной функциональностью TreeViewItem?
...
Рейтинг: 0 / 0
TreeViewItem
    #38601853
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320Ведь "аналог" класса TreeViewItem во VM не просто свойства такие содержит, но и логику по ленивой загрузке и прочую логику. Например, отрисовку крестика ("можно развернуть"), если айтим содержит потомков, или другого рисунка, если не содержит. Много чего ещё. А как "расширить" подобной функциональностью TreeViewItem?Я не говорил, что модель и HierarhicalDataTemplate не нужны. Всё что нет в TreeViewItem должно быть в модели. Но не надо пихать в модель то что есть в TreeViewItem, только если для этого есть особые причины.
...
Рейтинг: 0 / 0
TreeViewItem
    #38601862
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Кuser7320Ведь "аналог" класса TreeViewItem во VM не просто свойства такие содержит, но и логику по ленивой загрузке и прочую логику. Например, отрисовку крестика ("можно развернуть"), если айтим содержит потомков, или другого рисунка, если не содержит. Много чего ещё. А как "расширить" подобной функциональностью TreeViewItem?Я не говорил, что модель и HierarhicalDataTemplate не нужны. Всё что нет в TreeViewItem должно быть в модели. Но не надо пихать в модель то что есть в TreeViewItem, только если для этого есть особые причины.
А где я пихаю? Я привязываю. У VM IsExpanded и у V IsExpanded - привязал. Также как у VM текстовое поле и у V тоже есть TextBox - тоже привязал.
...
Рейтинг: 0 / 0
TreeViewItem
    #38601873
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320Я привязываю. У VM IsExpanded и у V IsExpanded - привязал.А зачем:
1. Добавить свойство в VM.
2. Добавить привязку данных V <=> VM.

Может проще дать логике ссылку на TreeViewItem? Разумеется, это не единственное решение, просто предлагаю об этом подумать. :-)
...
Рейтинг: 0 / 0
TreeViewItem
    #38601933
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Кuser7320Я привязываю. У VM IsExpanded и у V IsExpanded - привязал.А зачем:
1. Добавить свойство в VM.
2. Добавить привязку данных V <=> VM.

Может проще дать логике ссылку на TreeViewItem? Разумеется, это не единственное решение, просто предлагаю об этом подумать. :-)
Вы можете привести пример?.. Хотя, если это связано с вашей работой "Простое решение", где у вас предполагается настолько тесная связь между V и VM, что VM ссылается на V (а не наоборот, как в классике), то не надо. ))

Если вы дадите ВМ ссылку на В, то останется ли возможность привязывать несколько В к одной ВМ? Каким образом?

И что станет со всеми этими словами "меньше связность - лучше тестирование"?
...
Рейтинг: 0 / 0
TreeViewItem
    #38601951
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320Если вы дадите ВМ ссылку на В, то останется ли возможность привязывать несколько В к одной ВМ? Каким образом?Конечно, нет. Если требуется такая возможность - используй классический MVVM на здоровье. :-) Но часто ли это надо?
user7320И что станет со всеми этими словами "меньше связность - лучше тестирование"?Тестировать надо модель, а она, обычно, на сервере. Впрочем, "пилите, Шура, пилите, они золотые..." :-)
...
Рейтинг: 0 / 0
TreeViewItem
    #38601958
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зы: Ещё раз обращаю внимание на фразу: "Это не единственное решение, просто предлагаю об этом подумать".
...
Рейтинг: 0 / 0
TreeViewItem
    #38602004
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Кuser7320Если вы дадите ВМ ссылку на В, то останется ли возможность привязывать несколько В к одной ВМ? Каким образом?Конечно, нет. Если требуется такая возможность - используй классический MVVM на здоровье. :-) Но часто ли это надо?
Ладно, дайте ссылку, где у вас пример с привязкой ВМ ко В. Или лучше словами простыми опишите, как вы это делаете.

Я вот примерно такой подход применил, когда надо было несколько модальных окон друг на друге показать:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
VM_Window
{
    Window w; // хранит ссылку на своё окно

    ShowChild()
    {
        VM_Window vmChild = new VM_Window();
    		
    	Window vChild = new Window();
    	vChild.DataContext = vmChild;
    	vChild.Owner = this.w;
    		
    	vmChild.w = vChild;
    		
    	vChild.ShowDialog();
    }
}


И для таких штук можно много вложенностей детей сделать.
...
Рейтинг: 0 / 0
TreeViewItem
    #38602020
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320Ладно, дайте ссылку, где у вас пример с привязкой ВМ ко В.Это не у меня, это в WPF. :-)

Это любой Control+ControlTemplate или UserControl.

Тут описано моё видение MVVM, там же табличка с основными преимуществами и недостатками возможных подходов.
user7320Я вот примерно такой подход применил, когда надо было несколько модальных окон друг на друге показать. Тут описана работа с окнами. Но я не пойму вопроса. Модели окон связываются наиболее удобным способом: свойствами, событиями или ещё как. В чём интрига? :-)
...
Рейтинг: 0 / 0
TreeViewItem
    #38602253
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К Тут описана работа с окнами. Но я не пойму вопроса. Модели окон связываются наиболее удобным способом: свойствами, событиями или ещё как. В чём интрига? :-)
Да ни в чём. Я просто сделал не по правилам, и боялся, что кто-нибудь увидит и скажет ай-яй-яй. ))

Ну, у вас примерно как у меня, только я сразу в DataContext данные пихаю, а не в метод-хелпер.

А когда вы делаете "установку содержимого окна" через

Код: c#
1.
2.
// Установка содержимого окна.
    result.Content = content; 



вы можете потом из этого content свойства раскидать по привязкам в замл-разметке этого окна? Без установки DataContext?

И это, вызов нескольких диалоговых окон одно из другого у вас нормально пройдёт?
...
Рейтинг: 0 / 0
TreeViewItem
    #38602275
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320Алексей К Тут описана работа с окнами. Но я не пойму вопроса. Модели окон связываются наиболее удобным способом: свойствами, событиями или ещё как. В чём интрига? :-)
Да ни в чём. Я просто сделал не по правилам, и боялся, что кто-нибудь увидит и скажет ай-яй-яй. ))Забей на них. Делай как тебе сегодня удобнее. Не понравится - в новом проекте сделаешь "правильно". Заказчику пофиг как у тебя там написано, ему главное результат а не процесс.
user7320Ну, у вас примерно как у меня, только я сразу в DataContext данные пихаю, а не в метод-хелпер.Это да.

user7320А когда вы делаете "установку содержимого окна" через

Код: c#
1.
2.
// Установка содержимого окна.
    result.Content = content; 



вы можете потом из этого content свойства раскидать по привязкам в замл-разметке этого окна? Без установки DataContext?Могу, но это не требуется, поскольку Window является ContentControl-ом, и я в Window вставляю готовое содержимое. В самом Window у меня XAML-разметки нет.

user7320И это, вызов нескольких диалоговых окон одно из другого у вас нормально пройдёт?Да, проблем с этим никогда не было.
...
Рейтинг: 0 / 0
39 сообщений из 39, показаны все 2 страниц
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / TreeViewItem
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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