ViewData API は、データの一部ではなく UI 固有の状態がドメインのリロード後も持続し、エディターが再起動するという問題を解決します。これは、各 EditorWindow
に永続的なデータを保存することによって行います。 各 VisualElement
には viewDataKey
があります。これは、ViewData
の永続性を有効にするために設定する必要があります。
サポートする要素のビューデータの永続性を有効にするには、EditorWindow
内で viewDataKey
を一意のキーにします。
要素に有効な viewDataKey
がある限り、ビューデータの永続性は有効です。唯一の例外は、要素がその親のシャドウツリー内にあり、論理上の親の contentContainer
の 実際の子ではない場合です。この場合、シャドウツリーの子を永続化するには、親が独自の viewDataKey
を設定する必要があります。
例えば、ScrollView
では、各スクロールバーには、ScrollView
要素内で一意の独自の viewDataKey
があります。ScrollView
にキーが設定されていない場合、スクロールバーは維持されません。それ以外の場合、スクロールバーは viewDataKey
を親の viewDataKey
と組み合わせて、グローバルな一意のキーを作成します。