WidgetManager.UpdateWidget(WidgetUpdateRequestOptions) メソッド

定義

ウィジェットの更新されたコンテンツをウィジェット ホストに提供します。

public:
 virtual void UpdateWidget(WidgetUpdateRequestOptions ^ widgetUpdateRequestOptions) = UpdateWidget;
void UpdateWidget(WidgetUpdateRequestOptions const& widgetUpdateRequestOptions);
public void UpdateWidget(WidgetUpdateRequestOptions widgetUpdateRequestOptions);
function updateWidget(widgetUpdateRequestOptions)
Public Sub UpdateWidget (widgetUpdateRequestOptions As WidgetUpdateRequestOptions)

パラメーター

widgetUpdateRequestOptions
WidgetUpdateRequestOptions

WidgetUpdateRequestOptionsウィジェットの更新に使用するコンテンツを含む オブジェクト。

実装

次のコード例は、 UpdateWidget の一般的な使用方法を示しています。 WidgetManager.GetWidgetInfos() は、ウィジェット プロバイダーに関連付けられているアクティブなウィジェットのオブジェクトの WidgetInfo 一覧を取得するために呼び出されます。 ウィジェットごとに、ビジュアル テンプレートとデータ テンプレートが生成され、WidgetUpdateRequestOptions オブジェクトの UpdateWidget 呼び出しに渡されます。

using namespace winrt;
using namespace Microsoft::Windows::Widgets;
using namespace Microsoft::Windows::Widgets::Providers;

class WidgetManagerOperations
{
    void InitializeWidgets(hstring myWidgetId)
    {
        WidgetManager widgetManager = WidgetManager::GetDefault();
        com_array<WidgetInfo> widgetInfos = widgetManager.GetWidgetInfos();

        for (const auto& widgetInfo : widgetInfos)
        {
            if (widgetInfo.WidgetContext().IsActive())
            {
                WidgetUpdateRequestOptions options{myWidgetId};
                options.Template(LR"({
                    "type": "AdaptiveCard",
                    "version": "1.5",
                    "body": [
                        {
                            "type": "TextBlock",
                            "text": "${greeting}"
                        }
                    ]
                })");

                options.Data(LR"({
                    "greeting": "Hello"
                })");

                widgetManager.UpdateWidget(options);
            }
        }
    }
}

注釈

WidgetUpdateRequestOptions クラスに設定されていない変数は更新されません。 たとえば、ウィジェットのデータの更新のみに関心があり、既存のビジュアル テンプレートとカスタム状態を維持する場合は、 プロパティのみを WidgetUpdateRequestOptions.Data 設定すると、ウィジェットのデータは更新されますが、テンプレートとカスタム状態は変更されません。

UpdateWidget を使用して、値をクリアする空の文字列を設定することで、格納されている値をクリアすることもできます。 たとえば、ウィジェットに格納されているカスタム状態をクリアする場合は、 プロパティを WidgetUpdateRequestOptions.CustomState 空の文字列に設定できます。これにより、UpdateWidget が呼び出されると、格納されているカスタム状態が消去されます。

この関数を呼び出して、削除されたウィジェット、アプリに関連付けられていないウィジェット、または存在しないウィジェット ID を使用すると、更新が無視されます。

適用対象