Skip to content

Commit e3dbe6c

Browse files
committed
Add ItemsSource property to collections.
1 parent bcfcd9d commit e3dbe6c

File tree

2 files changed

+15
-8
lines changed

2 files changed

+15
-8
lines changed

src/UnityMvvmToolkit.UnityPackage/Assets/Plugins/UnityMvvmToolkit/Runtime/UITK/BindableUIElements/BindableListView.TItem.TCollection.cs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,15 @@ public abstract partial class BindableListView<TItemBindingContext, TCollection>
1919
private VisualTreeAsset _itemTemplate;
2020

2121
private IObjectProvider _objectProvider;
22+
2223
private List<VisualElement> _itemAssets;
2324
private IList<TItemBindingContext> _itemsSource;
2425
private Dictionary<int, TItemBindingContext> _activeItems;
2526

26-
protected PropertyBindingData _itemsSourceBindingData;
27-
protected IReadOnlyProperty<TCollection> _itemsSourceProperty;
27+
private PropertyBindingData _itemsSourceBindingData;
28+
private IReadOnlyProperty<TCollection> _itemsSourceProperty;
29+
30+
protected TCollection ItemsSource => _itemsSourceProperty is null ? default : _itemsSourceProperty.Value;
2831

2932
public virtual void Initialize()
3033
{
@@ -34,9 +37,9 @@ public virtual void Initialize()
3437

3538
public virtual void Dispose()
3639
{
37-
for (var i = 0; i < _itemAssets.Count; i++)
40+
foreach (var itemAsset in _itemAssets)
3841
{
39-
_itemAssets[i].DisposeBindableElement(_objectProvider);
42+
itemAsset.DisposeBindableElement(_objectProvider);
4043
}
4144

4245
_itemAssets.Clear();

src/UnityMvvmToolkit.UnityPackage/Assets/Plugins/UnityMvvmToolkit/Runtime/UITK/BindableUIElements/BindableScrollView.T.cs

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,20 +13,24 @@
1313

1414
namespace UnityMvvmToolkit.UITK.BindableUIElements
1515
{
16-
public abstract partial class BindableScrollView<TItemBindingContext> : ScrollView, IBindableCollection,
17-
IInitializable, IDisposable where TItemBindingContext : ICollectionItem
16+
public abstract partial class BindableScrollView<TItemBindingContext> :
17+
ScrollView, IBindableCollection, IInitializable, IDisposable
18+
where TItemBindingContext : ICollectionItem
1819
{
1920
private int _itemsCount;
2021

2122
private VisualTreeAsset _itemTemplate;
2223

2324
private IObjectProvider _objectProvider;
25+
2426
private ObjectPool<VisualElement> _itemAssetsPool;
2527
private Dictionary<int, VisualElement> _itemAssets;
2628
private ObservableCollection<TItemBindingContext> _itemsSource;
2729

28-
protected PropertyBindingData _itemsSourceBindingData;
29-
protected IReadOnlyProperty<ObservableCollection<TItemBindingContext>> _itemsSourceProperty;
30+
private PropertyBindingData _itemsSourceBindingData;
31+
private IReadOnlyProperty<ObservableCollection<TItemBindingContext>> _itemsSourceProperty;
32+
33+
protected ObservableCollection<TItemBindingContext> ItemsSource => _itemsSourceProperty?.Value;
3034

3135
public virtual void Initialize()
3236
{

0 commit comments

Comments
 (0)