Обновите TextBlockData с помощью нового Microsoft Band SDK.

Я хочу создать простое приложение в Microsoft Band, которое обновляет TextBlock, когда я нажимаю кнопку.

Я знаю, как получить триггерное событие кнопки на браслете. Но я не могу установить TextBlock, если срабатывает кнопка.

bandClient.TileManager.TileButtonPressed += (s, args) =>
{
    buttonPressedCount++;
    ((TextBlockData)page3.Values[2]).Text = buttonPressedCount.ToString();
    bandClient.TileManager.SetPagesAsync(args.TileEvent.TileId, page, page2,page3);
};

Пробовал со сменой страницы и вызовом SetPAgeAsync, но это работает некорректно.

Ваша помощь приветствуется.


person user41052    schedule 03.05.2015    source источник
comment
всем привет. у меня проблемы с захватом событий, вызванных кнопкой. у тебя вроде работает. не могли бы вы проверить мою проблему: stackoverflow.com/questions/35147802/   -  person doktorg    schedule 02.02.2016


Ответы (2)


OBS- я не запускал этот код :)

Кажется, вам не хватает ожидания, и я также рекомендовал бы вам удалить обработчик событий по нескольким причинам, избегая его удаления GC, имея возможность отписаться позже, чтобы избежать потенциальных утечек памяти и иметь возможность обернуть асинхронный вызов в попытке поймать, не загромождая код. Поскольку обработчик событий возвращает void, исключение не будет распространяться, переместите обработчик событий и завершите асинхронный вызов.

Асинхронный вызов возвращает логическое значение, которое вы могли бы использовать, кстати.

// bandClient.TileManager.TileButtonPressed += OnTileButtonPressed;


 private async void OnTileButtonPressed(object s, BandTileEventArgs<IBandTileButtonPressedEvent> e)
{
    try
    {
        buttonPressedCount++;
        ((TextBlockData)page3.Values[2]).Text = buttonPressedCount.ToString();
        await bandClient.TileManager.SetPagesAsync(e.TileEvent.TileId, page, page2, page3);
    }
    catch (BandException ex)
    {
        // Notify
    }
}
person Iris Classon    schedule 04.05.2015

Я пытался сделать то же самое и, наконец, прочитал каждую строку их документации SDK и нашел плохие новости на странице 31.

Обратите внимание, что содержимое отображаемой в данный момент страницы плитки не будет перерисовываться на экране Band, даже если ваше приложение устанавливает новое содержимое для этой страницы. Страница перерисовывается с новым содержимым, если она прокручивается за пределы экрана Band, а затем возвращается обратно, или если плитка закрывается и снова открывается пользователем.

Я собираюсь поиграть с добавлением и удалением страниц, чтобы мой новый контент был новой страницей, и посмотреть, будет ли это работать. Ни в коем случае не решение, но мне нужно кое-что попробовать. Меня очень расстраивает то, что мы не можем обновить наш контент и перерисовать его.

person ManOVision    schedule 04.05.2015