Гость
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Как бы мне такую хитрую структуру в XAML изобразить? / 25 сообщений из 26, страница 1 из 2
29.05.2013, 19:25
    #38279193
M234
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как бы мне такую хитрую структуру в XAML изобразить?
Всем привет!

Собственно структура изображена на картинке внизу.
Теперь чего требуется:
Есть коллекция объектов у которых есть св-во ID по мимо прочих.
Мне нужно вывести список этих объектов в таблице как на рисунке ниже.
В каждой строке находится ИМЯ объекта и три кнопки (ImageButton планирую исп-ть, но это не суть, можно и на примере обычного объяснить).
Ну и соответственно по клику на кнопке в таблице должно происходить то или иное действие.

Вот я тут в затруднении какими средствами это в XAML (Windows Store Application) сделать.
Не трудно взять ListView или GridView и прибиндить к нему нужную коллекцию и DataTemplate потом кнопки вставить.
Но вот будут ли эти кнопки работать и если да то как потом выйти в итоге на Item к которому относится кнопка?
Мне пока не понятно.

А вы как бы такое сделали?
Спасибо.
...
Рейтинг: 0 / 0
29.05.2013, 19:39
    #38279205
M234
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как бы мне такую хитрую структуру в XAML изобразить?
Проверил с ListView - кнопки работают.
Остался один вопрос - как достучатся до Itema?
.Parent для кнопки возвращает Grid
...
Рейтинг: 0 / 0
29.05.2013, 19:51
    #38279212
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как бы мне такую хитрую структуру в XAML изобразить?
Свойство DataContext там есть как в WPF?
...
Рейтинг: 0 / 0
30.05.2013, 11:34
    #38279858
M234
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как бы мне такую хитрую структуру в XAML изобразить?
Алексей КСвойство DataContext там есть как в WPF?

У какого объекта?
...
Рейтинг: 0 / 0
30.05.2013, 11:36
    #38279861
M234
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как бы мне такую хитрую структуру в XAML изобразить?
У Button'а вроде есть если так спросить:

((Button)sender).DataContext

А дальше как?
...
Рейтинг: 0 / 0
30.05.2013, 11:41
    #38279874
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как бы мне такую хитрую структуру в XAML изобразить?
Как-то так:
Код: c#
1.
2.
3.
var button = (Button)sender;
var myViewModel = (MyViewModel)button.DataContext;
var id = myViewModel.ID;


MyViewModel - это класс, для которого построен DataTemplate;
...
Рейтинг: 0 / 0
30.05.2013, 11:49
    #38279896
M234
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как бы мне такую хитрую структуру в XAML изобразить?
Алексей ККак-то так:
Код: c#
1.
2.
3.
var button = (Button)sender;
var myViewModel = (MyViewModel)button.DataContext;
var id = myViewModel.ID;


MyViewModel - это класс, для которого построен DataTemplate;

Спасибо, сейчас попробую.
А пока вот так получилось до индекса достучаться.

var item = (sender as FrameworkElement).DataContext;
int index = MyListView.Items.IndexOf(item);

MyViewModel в моём случае MyListView, верно?
...
Рейтинг: 0 / 0
30.05.2013, 11:52
    #38279907
M234
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как бы мне такую хитрую структуру в XAML изобразить?
M234Алексей ККак-то так:
Код: c#
1.
2.
3.
var button = (Button)sender;
var myViewModel = (MyViewModel)button.DataContext;
var id = myViewModel.ID;


MyViewModel - это класс, для которого построен DataTemplate;

Спасибо, сейчас попробую.
А пока вот так получилось до индекса достучаться.

var item = (sender as FrameworkElement).DataContext;
int index = MyListView.Items.IndexOf(item);

MyViewModel в моём случае MyListView, верно?

Ой не, не MyListView, а класс который исп-ся в прибинженой коллекции.
...
Рейтинг: 0 / 0
30.05.2013, 11:52
    #38279908
M234
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как бы мне такую хитрую структуру в XAML изобразить?
Алексей ККак-то так:
Код: c#
1.
2.
3.
var button = (Button)sender;
var myViewModel = (MyViewModel)button.DataContext;
var id = myViewModel.ID;


MyViewModel - это класс, для которого построен DataTemplate;

Спасибо, так тоже получилось.
...
Рейтинг: 0 / 0
30.05.2013, 12:00
    #38279922
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как бы мне такую хитрую структуру в XAML изобразить?
Всегда пожалуйста. :-)
...
Рейтинг: 0 / 0
30.05.2013, 18:47
    #38280716
skole
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как бы мне такую хитрую структуру в XAML изобразить?
Я обычно в класс Item добавляю интерфейс с нужными командами, потом вытаскиваю Item по его Id например. В интерфейсе можно накидать делегатов и ивентхендлеров на любой вкус. Template можно организовать в виде грида, там же сделать колонки для кнопок. Кнопки завязываются на ViewModel также как и свойства Item. Такой способ позволяет реализовать практически любой сценарий без головной боли.
...
Рейтинг: 0 / 0
02.06.2013, 01:44
    #38282682
Monochromatique
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как бы мне такую хитрую структуру в XAML изобразить?
Зачем вообще получать item?

По уму не так надо делать. Каждая viewModel представляет из твой item в списке. Действие в кнопке привязываешь к команде viewModel-и и твой action запускается в том item-е на котором щелкнул юзер. А получать данные через кнопку - это просто г@внокод.
...
Рейтинг: 0 / 0
02.06.2013, 09:17
    #38282715
SeVa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как бы мне такую хитрую структуру в XAML изобразить?
MonochromatiqueЗачем вообще получать item?

По уму не так надо делать. Каждая viewModel представляет из твой item в списке. Действие в кнопке привязываешь к команде viewModel-и и твой action запускается в том item-е на котором щелкнул юзер. А получать данные через кнопку - это просто г@внокод.
Это пример UI pattern'a из html c убогими возможностями. в xaml делают иначе: кнопки появляются только при наведении курсора на запись и\или ее выделении, чтобы не загромождать интерфейс и не заставлять пользователя делать лишних телодвижений для перемещения на отдельно стоящую кнопку.
...
Рейтинг: 0 / 0
02.06.2013, 10:29
    #38282722
Monochromatique
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как бы мне такую хитрую структуру в XAML изобразить?
Согласен, идея с тремя кнопками крайне сомнительна. Но я обсуждал лишь "как теперь по кнопке получить item?"
...
Рейтинг: 0 / 0
02.06.2013, 13:38
    #38282781
SeVa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как бы мне такую хитрую структуру в XAML изобразить?
item передается команде как параметр c помощью binding relative
...
Рейтинг: 0 / 0
02.06.2013, 13:56
    #38282787
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как бы мне такую хитрую структуру в XAML изобразить?
MonochromatiqueЗачем вообще получать item?

По уму не так надо делать. Каждая viewModel представляет из твой item в списке. Действие в кнопке привязываешь к команде viewModel-и и твой action запускается в том item-е на котором щелкнул юзер. А получать данные через кнопку - это просто г@внокод.А если вьюмодель кодогенерирована из WCF, EF (и т. п.) и нет возможности (или желания) лепить к ней partial class с командами и логикой? Остаётся обёртывать данные в ещё один класс, со всеми вытекающими...

Таки запись лучше передавать команде через CommandParameter. Если нет желания делать ICommand (а такое нежелание может быть вполне оправдано) извлекание записи из sender грозит только зависимостью от FrameworkElement. А особого вреда от такой зависимости вроде как нет.
...
Рейтинг: 0 / 0
02.06.2013, 14:00
    #38282790
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как бы мне такую хитрую структуру в XAML изобразить?
SeVaMonochromatiqueЗачем вообще получать item?

По уму не так надо делать. Каждая viewModel представляет из твой item в списке. Действие в кнопке привязываешь к команде viewModel-и и твой action запускается в том item-е на котором щелкнул юзер. А получать данные через кнопку - это просто г@внокод.
Это пример UI pattern'a из html c убогими возможностями. в xaml делают иначе: кнопки появляются только при наведении курсора на запись и\или ее выделении, чтобы не загромождать интерфейс и не заставлять пользователя делать лишних телодвижений для перемещения на отдельно стоящую кнопку.Располагать кнопки по-старинке в тулбаре или контекстном меню нынче уже не модно?
...
Рейтинг: 0 / 0
02.06.2013, 19:16
    #38282939
SeVa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как бы мне такую хитрую структуру в XAML изобразить?
Алексей КSeVaпропущено...

Это пример UI pattern'a из html c убогими возможностями. в xaml делают иначе: кнопки появляются только при наведении курсора на запись и\или ее выделении, чтобы не загромождать интерфейс и не заставлять пользователя делать лишних телодвижений для перемещения на отдельно стоящую кнопку.Располагать кнопки по-старинке в тулбаре или контекстном меню нынче уже не модно?

А зачем тянутся через весь экран или дополнительно клацать правой кнопкой, если это можно сразу сделать на кнопке, которая не мозолит глаза.
Помимо этого можно еще показывать более детально информацию на выбранной записи.
...
Рейтинг: 0 / 0
02.06.2013, 19:22
    #38282943
SeVa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как бы мне такую хитрую структуру в XAML изобразить?
Алексей КMonochromatiqueЗачем вообще получать item?

По уму не так надо делать. Каждая viewModel представляет из твой item в списке. Действие в кнопке привязываешь к команде viewModel-и и твой action запускается в том item-е на котором щелкнул юзер. А получать данные через кнопку - это просто г@внокод.А если вьюмодель кодогенерирована из WCF, EF (и т. п.) и нет возможности (или желания) лепить к ней partial class с командами и логикой? Остаётся обёртывать данные в ещё один класс, со всеми вытекающими...

Таки запись лучше передавать команде через CommandParameter. Если нет желания делать ICommand (а такое нежелание может быть вполне оправдано) извлекание записи из sender грозит только зависимостью от FrameworkElement. А особого вреда от такой зависимости вроде как нет.

ICommand должен быть в ViewModel, чтобы не было вредных зависимостей и жесткой связанности. Не раз доводилось по ходу проекта переделывать интерфейс. ViewModel можно и нужно делать обобщенным с набором необходимых команд.
МСУ я уже показывал кусочек с контроллерами, эту историю можно продолжить дальше и сократить код до минимума.
...
Рейтинг: 0 / 0
03.06.2013, 05:51
    #38283115
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как бы мне такую хитрую структуру в XAML изобразить?
SeVaА зачем тянутся через весь экран или дополнительно клацать правой кнопкой, если это можно сразу сделать на кнопке, которая не мозолит глаза.Мозолит, место занимает, а его мало.
SeVaПомимо этого можно еще показывать более детально информацию на выбранной записи.Не понравилось, когда выбранный элемент меняет размеры.
...
Рейтинг: 0 / 0
03.06.2013, 06:17
    #38283118
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как бы мне такую хитрую структуру в XAML изобразить?
SeVaViewModel можно и нужно делать обобщенным с набором необходимых команд.Её можно вообще не делать, если использовать что-то вроде ObjectDataProvider.
...
Рейтинг: 0 / 0
04.06.2013, 01:40
    #38284556
skole
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как бы мне такую хитрую структуру в XAML изобразить?
Если ты обнаружил, что тебе не нужен более ViewModel, архитектура приложения создана неверно. ViewModel является ключевым модулем логики.
...
Рейтинг: 0 / 0
04.06.2013, 02:10
    #38284573
M234
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как бы мне такую хитрую структуру в XAML изобразить?
А знает кто как до настроек встроенной Webcam у Surface/Win RT добраться? Ну что бы там яркость изменить и тп.
Я имею ввиду из приложения.
...
Рейтинг: 0 / 0
04.06.2013, 14:12
    #38285195
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как бы мне такую хитрую структуру в XAML изобразить?
skoleЕсли ты обнаружил, что тебе не нужен более ViewModel, архитектура приложения создана неверно. ViewModel является ключевым модулем логики.Мне всегда казалось, что логика живёт в сервисах модели. А тут вон оно как... :-)
...
Рейтинг: 0 / 0
04.06.2013, 17:08
    #38285526
M234
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как бы мне такую хитрую структуру в XAML изобразить?
M234А знает кто как до настроек встроенной Webcam у Surface/Win RT добраться? Ну что бы там яркость изменить и тп.
Я имею ввиду из приложения.

Нашёл.
На пример:

Код: c#
1.
2.
3.
4.
private MediaCapture _mediaCapture = new MediaCapture();

_mediaCapture.VideoDeviceController.Exposure.TrySetAuto(false); 
_mediaCapture.VideoDeviceController.Exposure.TrySetValue(-8); 
...
Рейтинг: 0 / 0
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Как бы мне такую хитрую структуру в XAML изобразить? / 25 сообщений из 26, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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