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