
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

Seva
16.01.2017
04:43:12

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 только свойства и заполнение коллекций

Дмитрий
16.01.2017
08:02:44

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
Спасибо, сохранил

Slava
16.01.2017
08:14:58

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

Дмитрий
16.01.2017
08:17:47
попробуй через метод
task.ContinueWith(...);
у этого метода перегрузок дофига и больше
но в идеале бы разделить реализацию приложения на уровни, потом всё может в такую кашу скатиться, что останется только взять и ... переписать

Sergey
16.01.2017
08:21:55

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
Ага

Leonard
16.01.2017
09:01:33
Понял

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 при создании элемента?
Эта группа больше не существует