2015-05-03 37 views
1

我想在Microsoft Band上创建一个简单的应用程序,该应用程序在单击按钮时更新TextBlock。使用新的Microsoft Band SDK更新TextBlockData

我知道如何获得乐队上的按钮的触发事件。但是如果触发按钮,我无法设置TextBlock。

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

我试着改变页面并调用SetPAgeAsync,但是这不能正常工作。

您的帮助表示赞赏。

+0

你好。我有问题捕获按钮触发的事件。你似乎有它的工作。你介意检查我的问题:http://stackoverflow.com/questions/35147802/ms-band-sdk-button-pressed-event-handler-not-being-called – doktorg

回答

1

OBS-我还没有运行该代码:)

你似乎缺少一个在等待着,我也建议你解除了事件处理出来的几个原因,避免GC夹紧它扔掉,可以稍后取消订阅,以避免潜在的内存泄漏,并且能够将异步调用封装在try catch中而不必混乱代码。由于事件处理程序返回void,所以异常不会被传播,请移出事件处理程序并包装异步调用。

异步调用返回一个布尔值,你可以使用BTW

// 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 
    } 
} 
0

我试图做同样的事情,终于看完了SDK documentation的每一行,发现页面上的坏消息31

请注意,即使您的应用程序为该页面设置了新内容,也不会在波段屏幕上重新绘制当前显示的图块页面的内容。如果该页面滚动出现Band屏幕并重新打开,或者用户退出并重新打开该图块,该页面将重新绘制新内容。

我打算玩添加和删除页面,以便我的新内容成为一个新页面,看看是否会工作。不是以任何方式解决问题,但我需要尝试一些。这让我非常沮丧,我们无法更新我们的内容并重新绘制。