Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用新的Microsoft Band SDK更新TextBlockData_C#_Microsoft Band - Fatal编程技术网

C# 使用新的Microsoft Band SDK更新TextBlockData

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

我想在Microsoft Band上创建一个简单的应用程序,当我单击按钮时,它会更新文本块

我知道如何获取乐队按钮的触发事件。但如果按钮被触发,我无法设置文本块

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屏幕上滚下,则会用新内容重新绘制该页面,然后 然后返回,或者如果用户退出并重新打开互动程序


我将尝试添加和删除页面,以使我的新内容成为一个新页面,并看看这是否有效。无论如何都不是解决办法,但我需要尝试一些东西。这让我很沮丧,因为我们无法更新内容并重新绘制。

您好。我在捕获按钮触发的事件时遇到问题。你似乎有它的工作。您是否介意查看我的问题: