@CSharpChatЭта группа больше не существует

Страница 235 из 1888
Slava
15.01.2017
10:09:20
можно стиль переопределить

Летучая
15.01.2017
10:36:53
BorderThickness = 0 но лучше полный стиль, да если будешь элемент управления в разных местах использовать

Leonard
15.01.2017
14:53:16
Спасибо

Нияз
15.01.2017
15:33:05
Если есть, скиньте, пожалуйста, подобный чат по wordpress. Заранее спасибо.

Google
Алексей
15.01.2017
17:34:51
Ты дописал клиент?

Max
16.01.2017
02:18:34
как получить значение через событие?

public event EventHandler<Message> OnMessage;

OnMessage(this, new Message(contact, msg["message"]));

как получить значение этого сообщения?

Vladimir Bondaryuk
16.01.2017
02:29:29
Подписаться на событие, на вход придет object и Messge, вот там и прлучи

Max
16.01.2017
02:31:20
да я понимаю, но чето не правильно делаю видимо

Дмитрий
16.01.2017
02:31:47
код покажи

http://metanit.com/sharp/tutorial/3.14.php как пример использования событий

Max
16.01.2017
02:57:40
спасибо, помог

Seva
16.01.2017
04:08:22
Ку всем

Имеется путь string paths = "dir1/dir2/dir3/file.txt"; Эти папки не созданы. Как сделать так что бы они создавались автоматически. Папки с разными названиями...

Дмитрий
16.01.2017
04:26:31
ну как-то так string paths = "dir1\\dir2\\dir3\\file.txt"; string directoryPath = Path.GetDirectoryName(paths); Directory.CreateDirectory(directoryPath); if (!File.Exists(paths)) { File.Create(paths).Close(); } // profit

Google
Leonard
16.01.2017
05:47:36
Дмитрий
16.01.2017
07:38:05
а если при вызове добавить await Task.Run(() => CallAsync(Method, Body, Callback)); // << await ?

Leonard
16.01.2017
07:39:32
Ну, мне тогда придётся и этот метод вызывать через Task.Run

Не?

Дмитрий
16.01.2017
07:40:38
ну можно и так ведь: Task.Run(() => ...).Wait();

а MessageDialog - это же диалоговое окно, правильно я понимаю? просто в тех же WinForms и WPF доступ к любым элементам управления возможен только из потока GUI - а тут Task.Run (предполагаю, что UWP функционирует по схожим принципам, т. к. на нём не кодил)

возможно, стоит вынести диалог взаимодействия с пользователем в основной поток выполнения без всяких await / async, и только выполнение самого http-запроса запускать в таске?

Leonard
16.01.2017
07:51:12
Та этот диалог как для проверки, вызывается ли task или нет был)

И оно не выполняется

Ошибся, выполняется

Только callback не вызывается

#0 Api.Call(Url, Body, () => FillEntries()); #1 static void Call(string Url, object Body, Action Callback) {} #2 async Task CallAsync(string Url, object Body, Action Callback) {} #3 Callback();

Slava
16.01.2017
07:59:45
чот на какие-то костыли похоже решение с колбэками

Leonard
16.01.2017
08:00:42
))

Дмитрий
16.01.2017
08:01:11
1. разделить код на view и viewmodel 1.* view биндить на ObservableCollection внутри viewmodel 2. выкинуть static 3. выкинуть замыкания 4. запускать таску во viewmodel и заполнять коллекцию

Slava
16.01.2017
08:02:18
я бы добавил еще слой сервисов, куда вынес бы всю логику работы, а в VM только свойства и заполнение коллекций

Leonard
16.01.2017
08:02:58
Как-то

Ничего не понял.

Google
Дмитрий
16.01.2017
08:03:28
https://ru.wikipedia.org/wiki/Model-View-ViewModel

see cref

Semen
16.01.2017
08:06:44
Подскажите, кто-то работал с синтезатором голоса на винде? Он как вообще?

Дмитрий
16.01.2017
08:12:10
Ничего не понял.
слой модели (model) - бизнес-логика приложения с пробросом на более низкий уровень (взаимодействие с целевым веб-сайтом / веб-сервисом через HttpClient, CRUD-операции) слой модели представления (view-model) - реализация механизма реагирования на действия пользователя (команды в WPF), определение источников данных для биндинга (привязки) к элементам управления слой представления (view) - биндинг на источники данных и команды из view-model для обеспечения работы механизма взаимодействия с пользователем по крайней мере, так это выглядит для WPF

Leonard
16.01.2017
08:13:22
Спасибо, сохранил

Leonard
16.01.2017
08:15:53
Мне пока что нужно лишь вызвать функцию по завершению запроса :с

Дмитрий
16.01.2017
08:17:47
попробуй через метод task.ContinueWith(...); у этого метода перегрузок дофига и больше

но в идеале бы разделить реализацию приложения на уровни, потом всё может в такую кашу скатиться, что останется только взять и ... переписать

Leonard
16.01.2017
08:22:13
Уже 4-ый раз переписываю, всё нормально

С каждым разом только лучше).

Дмитрий
16.01.2017
08:22:47
Дай ты человеку шишек набить ?
ничего не имею против

Anton
16.01.2017
08:23:06
Зачем делать Task.Run, если он уже async?

Task.Run используется чтобы из синхронного метода сделать асинхронный

Асинхронным надо просто await делать

Leonard
16.01.2017
08:24:45
Функция в которой выполняется Task.Run не async

Anton
16.01.2017
08:25:04
Call надо тоже сделать async

Leonard
16.01.2017
08:25:14
И как мне его тогда вызывать?

Anton
16.01.2017
08:25:50
Точно так же

Google
Anton
16.01.2017
08:26:56
И вообще, я сейчас заметил, что у тебя там колбэк передаётся

Его по-хорошему тоже надо переделать

Admin
ERROR: S client not available

Anton
16.01.2017
08:27:27
Ради этого и придумывался async

Чтобы не был спагетти-код из колбэков

В общем попробуй переделать Call на async

Не меняя место его вызова

Leonard
16.01.2017
08:32:19
Переделал

Работает всё кроме вызова callback функции

Sergey
16.01.2017
08:36:26
Тебе уже посоветовали как переделать

И убери статики. Если уж так припрет - то используй свой аписервис как синглтон

Anton
16.01.2017
08:38:08
У тебя скорее всего колбэк из другого потока вызывается

Надо переделать на нормальный async, он засинхронизирует обратно в ui-поток

Тебе надо, чтобы API именно такой был, с колбэком?

Leonard
16.01.2017
08:51:45
Та не обязательно именно таким. Необходимо отправить HTTP запрос, с POST параметрами Полученный ответ либо передать коллбэк функции, либо сохранить в переменной какой-нибудь

Call(Method, Parameters, Callback)

Anton
16.01.2017
08:53:16
Короче суть в том, что если у тебя где-то используется await, то везде выше всё тоже придётся переделать на await/async

Leonard
16.01.2017
08:53:53
Вроде понял

Anton
16.01.2017
08:54:13
Call(Method, Parameters, Callback) превратится в var result = await Call(Method, Parameters); Callback(result);

Кстати, url норм)

Google
Leonard
16.01.2017
08:56:06
Сарказм?

Anton
16.01.2017
08:56:20
Нет)

Leonard
16.01.2017
08:56:36
Поддомен api + /api/method ?

Anton
16.01.2017
08:57:16
Ну я про основной домен

Leonard
16.01.2017
08:58:21
2-го уровня?

Anton
16.01.2017
09:00:44
Ага

Anton
16.01.2017
09:03:32
Поначалу легко очень запутаться в этой всей асинхронности

Slava
16.01.2017
09:06:07
Самое главное понять что это не асинхронность как таковая, а синтаксический сахар

NermaN
16.01.2017
09:23:50
а как из <EventSetter Event="MouseDoubleClick" Handler="Row_DoubleClick"/> получить объект с данными для datagrid?

оказалось все просто, в интернете полно нерабочих варинтов почему-то =(

Leonard
16.01.2017
11:56:08
Из-за чего может возникать System.Exception при создании элемента?

Страница 235 из 1888

Эта группа больше не существует Эта группа больше не существует