TabViewProperty
TabView
のバインディングを宣言するときに利用するBindableProperty
です。
宣言の方法
BindableProperty
と同様にTabViewProperty<T>.Create()
を呼び出すことで宣言ができます。<T>
はTabView
にバインディングしたいViewModelの型を指定します。
private static readonly TabViewProperty<ShowcaseViewModel> TabProperty =
TabViewProperty<ShowcaseViewModel>.Create(
tabContentViewInfoList: new[]
{
(
viewGuid: ControlsShowcaseLayout.UxmlGuid,
labelDataSourcePath: PropertyPath.Combine(
PropertyPath.FromName(nameof(ShowcaseViewModel.Controls)),
PropertyPath.FromName(nameof(ControlsShowcaseViewModel.TabLabel))
)
),
(
viewGuid: ListViewShowcaseLayout.UxmlGuid,
labelDataSourcePath: PropertyPath.Combine(
PropertyPath.FromName(nameof(ShowcaseViewModel.ListView)),
PropertyPath.FromName(nameof(ListViewShowcaseViewModel.TabLabel))
)
)
},
elementNameInfo: ElementNames.RootTab
);
Parameters
TabViewProperty<T>.Create()
は次のパラメータを指定することができます。
パラメータ | 型 | 必須 | 初期値 |
---|---|---|---|
tabContentViewInfoList | IEnumerable<(string viewGuid, PropertyPath labelDataSourcePath)> | yes | - |
elementNameInfo | ElementNameInfo | yes | - |
tabContentViewInfoList
TabViewProperty
はTab
を生成します。tabContentViewInfoList
では、生成されたTab
と紐づけるViewクラスの一覧を指定することができます。TabView
にバインディングされるViewModelは<T>
で指定した型を持ちます。tabContentViewInfoList
で指定したViewに異なるViewModelをバインディングしたい場合は、tabContentViewInfoList
で指定するViewクラスにHaikaraViewModelProvidableBase
を継承させる必要があります。viewGuid
ViewクラスのGuidを指定します。指定するGuidのViewクラスを含むアセンブリについて、事前にViewInstaller.Install()
をしておく必要があります。
このGuidを元にTab
の中身となるVisualTreeAsset
を取得、インスタンス化し、Viewクラスによってデータバインディングが実施されます。labelDataSourcePath
TabView上のラベルのデータソースを指定することができます。
elementNameInfo
どのTabViewに対してバインディングを構築するかを指定します。