
Boris
16.10.2018
03:22:03
Если надо дать UI прорисовать кадр перед новыми изменениями, я использую Task.Yield.
Но как я понимаю, многие считают это плохим вариантом. А какой тогда хороший?

Алекс
16.10.2018
04:44:34
Ребят всем привет можно ли как-то обновить кнопку
Процедуру кнопки

Boris
16.10.2018
04:51:48
Если процедура кнопки устарела - просто купи новую

Google

Алекс
16.10.2018
04:58:53
Есть приложуха и кнопка я на неё тыкаю потом на неё же тыкаю она возвращает в меню потом она зависает и не работает

Vlad
16.10.2018
05:05:59

Алекс
16.10.2018
05:15:24
Сейчас по Скринам скину
Есть вот такая приложуха
Прокрутка в низ работает
После нажатие кнопки ориентация
Оно переворачивается
Нажимаю обратно на ориентацию
И прокрутка перестаёт работать

Vlad
16.10.2018
05:48:44

Google

Алекс
16.10.2018
07:14:03
Scrolview

Vlad
16.10.2018
07:30:14
Scrolview
А вот эти "привет" вы сами добавляете новые компоненты на страницу?

Nikita
16.10.2018
07:35:37
Привет. Есть ли удобный способ использовать разные макеты страниц для Планшетов и Телефонов, используя MvvmCross + Xamarin.Forms?
Может что-то реализовано для этого в MvvmCross?

Алекс
16.10.2018
07:49:21
Да это текст любой
С энтри взятый

Aleksandr
16.10.2018
08:27:33

Nikita
16.10.2018
08:28:52
if (Device.Idiom == TargetIdiom.Tablet || Device.Idiom == TargetIdiom.Desktop)
await Navigation.PushAsync(new StoresTabletPage());
else
await Navigation.PushAsync(new StoresPage());
Знгаю такое вот, но MvvmCross имеет ViewModel first navigation, поэтому не подходит
Думал в MvvmCross есть загрузка View по Idiom или еще что-нибудь

Aleksandr
16.10.2018
08:29:54
в зависимости от идиомы подставлять тот или иной шаблон

Nikita
16.10.2018
08:30:32
Ага, скорее всего только так будет лучше, спасибо

Aleksandr
16.10.2018
08:30:48
тут посмотри, вдруг понравится

Илья
16.10.2018
08:41:17
друзья всем привет. наверняка кто-то знает как сделать периодическую операцию через определенный интервал времени использую Observable.Interval, но чтобы запускалась не строго через указанный период, а через период + время выполнения самой операции
подскажите плиз

Vladislav
16.10.2018
09:29:59

Kirill
16.10.2018
09:38:15
Or while (true) { await Task. Delay(INTERVAL); action. Invoke();}

Илья
16.10.2018
09:41:33
да, это рабочее решение, только нет семантики отписки через IDisposable как у Observable. Не хотелось бы ее терять
public class PeriodicOperation
{
private int _isPerforming = 0;
public IDisposable Start(TimeSpan interval, Func<Task> action, bool performOnMainThread, Func<bool> isSuspended)
{
var observable = Observable.Interval(interval).Where(_=> !isSuspended());
if (performOnMainThread) observable = observable.ObserveOn(RxApp.MainThreadScheduler);
return observable.Subscribe(_ => Perform(action).DoNotWait());
}
private async Task Perform(Func<Task> action)
{
if (Interlocked.CompareExchange(ref _isPerforming, 1, 0) == 1) return;
try
{
await action();
}
finally
{
Interlocked.Exchange(ref _isPerforming, 0);
}
}
}
решил так сделать

Google

Kot
16.10.2018
13:05:54
Привет, разбираюсь в ордеркинге, столкнулся с проблемой: на ios ошибка вылетает, с сообщением об отсутствии root view controller. В navigation service метод rootpush не делает первую страницу в стеке основной. Работает только при условии, если убрать строки begininvokeonmainthread. На Андроиде все ок в обоих случаях. Чем обусловлено наличие этого вызова? Спасибо

Kirill
16.10.2018
13:32:56

Kot
16.10.2018
13:39:56
Спасибо

mute
16.10.2018
14:55:26
привет. в доке пишут что юзайте MotionEventCompat, но в доке к нему написано что все deprecated. ну так и как правильно?

Nikolai
16.10.2018
16:46:23
Кто-нибудь использует xUnit + .NET Core в VS 4 Mac?
Похоже, что VS4mac не переваривает Microsoft.NET.Test.Sdk версии 15.8.0 и новее, да уж

Max
16.10.2018
17:29:46

GETHEME
16.10.2018
17:36:14

Nikolai
16.10.2018
17:37:40
Может и хорошая идея, я не пробовал райдер уже год наверное

Pavel
16.10.2018
17:45:41
У меня он как не раьотал так т не работает нормально


Nikolay
16.10.2018
18:06:46
День добрый, подскажите почему из ViewModel не показывается
<ActivityIndicator x:Name="pleaseWait"
IsRunning="{Binding IsBusy}"
IsVisible="{Binding IsBusy}"
VerticalOptions="Center"
BackgroundColor="Black"
/>
public class MainPageVM : INotifyPropertyChanged
{
bool isBusy;
public bool IsBusy
{
get { return isBusy; }
set
{
SetProperty(ref isBusy, value, "IsBusy");
}
}
protected bool SetProperty<T>(ref T backingStore, T value,
[CallerMemberName]string propertyName = "",
Action onChanged = null)
{
if (EqualityComparer<T>.Default.Equals(backingStore, value))
return false;
backingStore = value;
onChanged?.Invoke();
OnPropertyChanged(propertyName);
return true;
}
public void OnPropertyChanged([CallerMemberName]string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
А вот само присвоение IsBusy
async void DoDisconnect()
{
try
{
IsBusy = true;
await mgr.DisConnectAsync();
}
finally
{
IsBusy = false;
}
}


Илья
16.10.2018
18:09:41


Nikolay
16.10.2018
18:11:02
А что не так-то?

Илья
16.10.2018
18:11:41
громоздко и не работает)

Nikolay
16.10.2018
18:11:56
и как это в Xamarin.Forms интегрировать?

Илья
16.10.2018
18:12:12
скачать нагет пакет
ReactiveUI

Nikolay
16.10.2018
18:12:43
А оно с Forms совместимо?

Илья
16.10.2018
18:12:58
да

Google

Илья
16.10.2018
18:12:59
[Reactive]
public PersonVm NextPerson { get; private set; }
вот так выглядит описание нотифицируемого свойства
плюс там есть асинхронные команды, которые блочат кнопки на время выполнения
нотифицируемые коллекции
короче там дохера полезного

Nikolay
16.10.2018
18:13:59
ок, спасибо за наводку
А на UI там в XAML не потребуется ничего менять?

Илья
16.10.2018
18:17:49
эта либа про MVVM
а привязки будут работать, если вопрос про это

Nikolay
16.10.2018
18:19:23
Смутила просто вот эта фраза с гита:
Currently, you need to manually add <ReactiveUI /> to your Fody weavers configuration. If this is your first Fody plugin then FodyWeavers.xml should look like this after the change:
и далее какой-то XML , не похожий на XAML

Илья
16.10.2018
18:21:41
это конфигурация либы "фоди"
без нее не будет работать кодогенерация
тот самый атрибут [Reactive] при компиляции разворачивается примерно в то, что ты прислал вначале
поэтому при линковке сборки нужно быть осторожнее

Vlad
16.10.2018
18:24:31


Nikolay
16.10.2018
18:25:44
https://pastebin.com/1YUn5iK0
И по поводу ReactiveUI.Fody - его в какой проект добавлять? Там , где VM или там, где XAML?

GETHEME
16.10.2018
18:34:45

Nikolay
16.10.2018
18:36:39

Google

GETHEME
16.10.2018
18:38:19

Nikolay
16.10.2018
18:38:50
Они в разных, т.к. VM еще и в WPF используется
Итак, добавил этот самый Fody в проект с VM -
: Could not find path to weavers file. Searched 'C:\prj\Demo\Xamarin2\WifiManager\FodyWeavers.xml', 'C:\prj\Demo\Xamarin2\WifiManager\WiFiManager.Common\FodyWeavers.xml'. WiFiManager.Common 1
А еще вот такой warning стал появляться - NU1608: Detected package version outside of dependency constraint: Xamarin.Android.Support.Design 27.0.2 requires Xamarin.Android.Support.Compat (= 27.0.2) but version Xamarin.Android.Support.Compat 27.0.2.1 was resolved.
С этим-то что делать?

GETHEME
16.10.2018
18:45:04

Nikolay
16.10.2018
18:47:09
угу

Илья
16.10.2018
18:48:37
добавь фоди веарс в запускающий проект

GETHEME
16.10.2018
18:49:53
удали файл FodyWeavers.xml, и дабов его руками в той же папке где было
от realm.net: Note for UWP, .NET Core and other .NET Standard projects: due to changes in NuGet 3.1, packages are no longer able to create content files, so FodyWeavers.xml will not be created automatically. You’ll need to manually create the file and paste the content above. Please refer to this post for more information.

Nikolay
16.10.2018
18:58:17
Я его в .Common добавлял, где у меня VM

Павел
16.10.2018
18:59:34
Большая проблема со сборками ios. ipa весит 30мб а в сторе под 100

Кита
16.10.2018
19:02:05
ок, спасибо за наводку
Ох уж эти атрибуты и достаточно тяжелый для мобилок ReactiveUI, который изначально писался под десктоп. Хотите чтобы аппка на ведре замедляла свой старт - юзайте. Чёрный ящик в виде Fody хотите тащить на мобилки тащите)

GETHEME
16.10.2018
19:04:26

Nikolay
16.10.2018
19:08:29

GETHEME
16.10.2018
19:08:32
Nikolay если хотите все такие использовать ReactiveUI, Надо тут либо поискать как менять путь как FodyWeavers.xml, или копировать его ещё в этом path = C:\prj\Demo\Xamarin2\WifiManager\FodyWeavers.xml'

Nikolay
16.10.2018
19:10:56
дык, уже: public class MainPageVM : INotifyPropertyChanged