C# 使用新的Microsoft Band SDK更新TextBlockData
我想在Microsoft Band上创建一个简单的应用程序,当我单击按钮时,它会更新文本块 我知道如何获取乐队按钮的触发事件。但如果按钮被触发,我无法设置文本块C# 使用新的Microsoft Band SDK更新TextBlockData,c#,microsoft-band,C#,Microsoft Band,我想在Microsoft Band上创建一个简单的应用程序,当我单击按钮时,它会更新文本块 我知道如何获取乐队按钮的触发事件。但如果按钮被触发,我无法设置文本块 bandClient.TileManager.TileButtonPressed += (s, args) => { buttonPressedCount++; ((TextBlockData)page3.Values[2]).Text = buttonPressedCount.ToString(); ba
bandClient.TileManager.TileButtonPressed += (s, args) =>
{
buttonPressedCount++;
((TextBlockData)page3.Values[2]).Text = buttonPressedCount.ToString();
bandClient.TileManager.SetPagesAsync(args.TileEvent.TileId, page, page2,page3);
};
我尝试过更改页面并调用SetPAgeAsync,但这不能正常工作
非常感谢您的帮助。OBS-我还没有运行此代码:) 您似乎错过了等待,我还建议您出于一些原因将事件处理程序提出来,避免GC将其丢弃,能够稍后取消订阅以避免潜在的内存泄漏,并且能够将异步调用包装在一个try-catch中,而不必混乱代码。由于事件处理程序返回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
}
}
//bandClient.TileManager.TileButtonPressed+=OnTileButtonPressed;
私有异步void OnTileButtonPressed(对象s、BandTileEventArgs e)
{
尝试
{
按钮按下计数++;
((TextBlockData)page3.Values[2]).Text=buttonPressedCount.ToString();
等待bandClient.TileManager.SetPagesAsync(e.TileEvent.TileId,第页,第2页,第3页);
}
捕获(带异常)
{
//通知
}
}
我试着做同样的事情,最后阅读了他们的每一行,在第31页发现了坏消息
请注意,当前显示的互动程序页面的内容不会在Band屏幕上重新绘制,即使您的
应用程序将新内容设置到该页面。如果页面从Band屏幕上滚下,则会用新内容重新绘制该页面,然后
然后返回,或者如果用户退出并重新打开互动程序
我将尝试添加和删除页面,以使我的新内容成为一个新页面,并看看这是否有效。无论如何都不是解决办法,但我需要尝试一些东西。这让我很沮丧,因为我们无法更新内容并重新绘制。您好。我在捕获按钮触发的事件时遇到问题。你似乎有它的工作。您是否介意查看我的问题: