@xamarin_russia

Страница 567 из 619
Kiparin
17.09.2018
11:01:46
Всем привет камрады . Есть вопросы по поводу камеры в Xamarin . У кого есть опыт использования и что посоветуете

Олег
17.09.2018
11:04:13
И что, Id из фильтра туда не попадает?
Все, сделал. Все работает, это я, косоглаз, указал вместо filterId - просто Id

только вот цвет не меняется...

Google
Kiparin
17.09.2018
11:25:39
An
17.09.2018
13:16:28
Какие у вас настройки для ИОС ??

http://prntscr.com/kve48q

Sasha
17.09.2018
13:49:08
Всем привет, может кто посоветовать как получать кординаты при нажиме в XF.В чате советовали https://forums.xamarin.com/discussion/comment/253375/#Comment_253375. Но это решение с использованием SkiaSharp, может кто посоветовать способ без использования Skia? Как-то не хочется подключать такую большую либу для одной функции. Может кто-то посоветовать, как сделать что бы этот способ работал без скиа?

Андрей Родионович
17.09.2018
13:49:55
Тапгестуре не ловит координаты

Ловит пангестуре

Но то свайпы

Sasha
17.09.2018
13:53:52
Kirill
17.09.2018
13:54:29
Можите подробнее объяснить?
берется вь.юха, на неё вешается обработчик тапов и там обрабатываютс координаты

Sasha
17.09.2018
13:54:42
Ловит пангестуре
TapGesture ловит свайпы? Или PanGesture?

Андрей Родионович
17.09.2018
13:54:51
Pan

Google
Олег
17.09.2018
14:31:39
подскажите, плз, как обратиться из VM к объекту в XAML x:Name? без закидывания вьюхи в вм.

Олег
17.09.2018
14:33:54
блин...

у элемента есть метод. Его надо заюзать, чтобы перерисовать этот элемент



vladimir
17.09.2018
14:35:02
а поточнее?

Олег
17.09.2018
14:35:13
ууууууу, Вов, там дофига рассказывать)))

ща...

короче, есть элемент DynamicStackLayout. На него биндиться ObservableCollection с элементами. Я пытался изменить состояние элементов, но изменения не проходили. По сути это не listView, это обычный StackLayout и в нем новые биндовые объекты объявлены.

в самом начале при инициализации делает CreateStack(), который чистит всю вьюху и заполняет с нуля

и OnPropertyChanged до него не может достучаться, чтобы перерисовать. Поэтому я взял код с исходника и добавил ему новый метод для ручной перерисовки

и к нему достучаться пытаюсь

vladimir
17.09.2018
14:38:26
понял

Олег
17.09.2018
14:39:58
https://github.com/SuavePirate/DynamicStackLayout

вот если что) тут один лист кода всего

vladimir
17.09.2018
14:40:27
реализацию в XF не смотрел?

для ListView какого-нибудь?

Олег
17.09.2018
14:40:48
неа

vladimir
17.09.2018
14:41:04
сейчас покажу

Google
vladimir
17.09.2018
14:43:03
https://github.com/xamarin/Xamarin.Forms/blob/master/Xamarin.Forms.Core/ItemsView.cs#L19

ListView наследуется от этого

надо будет сделать подобную реализацию BindableProperty

Олег
17.09.2018
14:44:00
так я их же и делаю

ItemTemplate, ItemSource, ItemSelected, SelectedItem

vladimir
17.09.2018
14:44:18
добавил BindableProperty в свою View?

Олег
17.09.2018
14:44:37
так... нет

vladimir
17.09.2018
14:46:28
также скорее всего надо будет добавить ObservableCollection.CollectionChanged событие, и из него внутри вызывать OnPropertyChanged(nameof(ObservableCollection)) (или как там свойство названо)

но это не точно

Vlad
17.09.2018
14:48:53
надо будет сделать подобную реализацию BindableProperty
прик, я почти до того же только что дошел?

vladimir
17.09.2018
14:50:44
вот и в этой BindableProperty надо будет добавить метод OnPropertyChanged как в ссылке выше

вот там-то и будет логика добавления View

Vlad
17.09.2018
14:53:06
там просто почему-то оповещение приходит только когда полностью изменилась коллекция. то есть было null а стало что-то или наоборот и раз так, то я в Command обнуляю коллекцию, что дает оповещение в View и там уже PropertyChanged работает



Kirill
17.09.2018
14:55:37
как?..
if (_items is INotifyCollectionChanged newColleciton) { newColleciton.CollectionChanged += NewColleciton_CollectionChanged; }

Kirill
17.09.2018
14:57:25
Тогда в NewColleciton_CollectionChanged будут приходить события о изменениях коллекции, если это ObservableCollection

Google
Vlad
17.09.2018
15:00:06
В PropertyChangedd
а _items от чего кастовать?

Kirill
17.09.2018
15:00:35
Олег
17.09.2018
15:09:40


if (_items is INotifyCollectionChanged newColleciton) { newColleciton.CollectionChanged += NewColleciton_CollectionChanged; }
вот видимо событие по изменению обсколлекции?

Kirill
17.09.2018
15:11:57
зачем там еще на PropertyChanged подписываться? Туда приходят события когда в коллекцию добавляется или удаляется объект. https://metanit.com/sharp/tutorial/4.13.php

Vlad
17.09.2018
15:24:02
vladimir
17.09.2018
15:24:44
нет

подписка на CollectionChanged должна быть в VM

во View просто чтение изменений

просто работаете напрямую с ItemsSource

Admin
ERROR: S client not available

vladimir
17.09.2018
15:25:57
и bindable должен быть IEnumerable<object>

Kirill
17.09.2018
15:25:58
во View просто чтение изменений
А каким образом view узнает о добавление в коллекцию?

Kirill
17.09.2018
15:27:22
подписка на CollectionChanged должна быть в VM
зачем? как раз на вью должна быть, что бы обрабатывать. А VM должна коллекцией манипулировать.

vladimir
17.09.2018
15:27:38
ну да

Kirill
17.09.2018
15:27:41
но я не уверен, может сама ObservableCollection сообщит об этом, я сейчас с ходу не скажу
Никак она не сообщит, нужно подписывать я на CollectionChanged

Google
Kirill
17.09.2018
15:27:50
ну грубо говоря - да. Но лучше обрабатывать все события и динамично создавать объекты, а не все пересоздавать по каждому чиху.

Олег
17.09.2018
15:27:51
А если это редактирование?

Kirill
17.09.2018
15:28:17
А если это редактирование?
редактирование чего?

vladimir
17.09.2018
15:29:04
ну грубо говоря - да. Но лучше обрабатывать все события и динамично создавать объекты, а не все пересоздавать по каждому чиху.
да неправильно там, какая-то дикая цепочка ненужная изменяется коллекция, View об этом узнаёт, она же внутри опять дополнительно подписывается на изменения, и опять создаёт что-то

всё это должно быть в VM

Олег
17.09.2018
15:29:19
Редактирование элементов внутри списка, не добавление и удаление

vladimir
17.09.2018
15:29:30
а во View там будет прямая манипулия View элементов

vladimir
17.09.2018
15:29:47
исходя из текущих значение ItemsSource

да

потому что она привяжется к ItemsSource

а подписка на изменения коллекции и обработка их будет в VM

не во View

View надо представлением аниматься, а не логикой

Kirill
17.09.2018
15:30:39
Если я сделаю Add а коллекцию, то хочешь сказать view узнает об этом без лишних подписок?

vladimir
17.09.2018
15:30:59
подписаться внутри VM

а после обработки изменений коллекции вызвать OnPropertyChange("Collection") - это внутри метода, который подписался на события изменния коллекции внутри VM

и тогда View узнает

vladimir
17.09.2018
15:32:38
Оптимизация, нет не слышал?
какая оптимизация? что тут неоптимизированно? какой костыль?

Страница 567 из 619