diff --git a/Wallet.Avalonia.Desktop/Wallet.Avalonia.Desktop.csproj b/Wallet.Avalonia.Desktop/Wallet.Avalonia.Desktop.csproj index 4bf02f7..f912f2d 100644 --- a/Wallet.Avalonia.Desktop/Wallet.Avalonia.Desktop.csproj +++ b/Wallet.Avalonia.Desktop/Wallet.Avalonia.Desktop.csproj @@ -20,7 +20,7 @@ - + diff --git a/Wallet.Avalonia/CommentEntryCollectionView.axaml b/Wallet.Avalonia/CommentEntryCollectionView.axaml index 780056b..ae88c22 100644 --- a/Wallet.Avalonia/CommentEntryCollectionView.axaml +++ b/Wallet.Avalonia/CommentEntryCollectionView.axaml @@ -6,5 +6,6 @@ x:DataType="vm:CommentEntryCollectionViewModel" Header="{Binding Key}" IsExpanded="True" + IsToggleable="{Binding Count}" ItemTemplate="{ReflectionBinding Template}" ItemsSource="{Binding}" /> diff --git a/Wallet.Avalonia/CreateItemNavigationView.axaml b/Wallet.Avalonia/CreateItemNavigationView.axaml index 4b43bf6..8cf01e3 100644 --- a/Wallet.Avalonia/CreateItemNavigationView.axaml +++ b/Wallet.Avalonia/CreateItemNavigationView.axaml @@ -10,7 +10,7 @@ - + diff --git a/Wallet.Avalonia/Wallet.Avalonia.csproj b/Wallet.Avalonia/Wallet.Avalonia.csproj index 92c2dbc..e581499 100644 --- a/Wallet.Avalonia/Wallet.Avalonia.csproj +++ b/Wallet.Avalonia/Wallet.Avalonia.csproj @@ -19,22 +19,22 @@ - + - + - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + diff --git a/Wallet/CommentEntryCollectionViewModel.cs b/Wallet/CommentEntryCollectionViewModel.cs index eac7f24..643005d 100644 --- a/Wallet/CommentEntryCollectionViewModel.cs +++ b/Wallet/CommentEntryCollectionViewModel.cs @@ -2,23 +2,29 @@ namespace Wallet; -public partial class CommentEntryCollectionViewModel(IServiceProvider provider, - IServiceFactory factory, - IMediator mediator, - IPublisher publisher, - ISubscriber subscriber, - IDisposer disposer, - IContentTemplate template, - ItemState state, - ItemEntryConfiguration> configuration, - string key, - ICollection value, - bool isConcealed, - bool isRevealed, - double width) : ItemEntryCollectionViewModel>(provider, factory, mediator, publisher, subscriber, disposer, state, configuration, key, value, isConcealed, isRevealed, width), +public partial class CommentEntryCollectionViewModel : ItemEntryCollectionViewModel>, INotificationHandler> { - public IContentTemplate Template { get; set; } = template; + public CommentEntryCollectionViewModel(IServiceProvider provider, + IServiceFactory factory, + IMediator mediator, + IPublisher publisher, + ISubscriber subscriber, + IDisposer disposer, + IContentTemplate template, + ItemState state, + ItemEntryConfiguration> configuration, + string key, + ICollection value, + bool isConcealed, + bool isRevealed, + double width) : base(provider, factory, mediator, publisher, subscriber, disposer, state, configuration, key, value, isConcealed, isRevealed, width) + { + Template = template; + UpdateState(); + } + + public IContentTemplate Template { get; set; } public Task Handle(CreateEventArgs args) { @@ -31,9 +37,12 @@ public partial class CommentEntryCollectionViewModel(IServiceProvider provider, return Task.CompletedTask; } - protected override void OnStateChanged() + protected override void OnStateChanged() => + UpdateState(); + + private void UpdateState() { - if (State is ItemState.Write) + if (State is ItemState.Write or ItemState.New) { Add(); }