Ensure a locker is selected in first load
This commit is contained in:
@@ -36,7 +36,7 @@
|
|||||||
Region="{Binding Named, StringFormat='{}{0}:Content'}"
|
Region="{Binding Named, StringFormat='{}{0}:Content'}"
|
||||||
Route="Item"
|
Route="Item"
|
||||||
Scope="self">
|
Scope="self">
|
||||||
<Parameter Key="test" Value="{x:True}" />
|
<Parameter Key="FromCategory" Value="{x:True}" />
|
||||||
<Parameter Key="State" Value="{x:Static vm:ItemState.Write}" />
|
<Parameter Key="State" Value="{x:Static vm:ItemState.Write}" />
|
||||||
</NavigateAction>
|
</NavigateAction>
|
||||||
</EventTriggerBehavior>
|
</EventTriggerBehavior>
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
Region="{Binding Named, StringFormat='{}{0}:Content'}"
|
Region="{Binding Named, StringFormat='{}{0}:Content'}"
|
||||||
Route="Item"
|
Route="Item"
|
||||||
Scope="self">
|
Scope="self">
|
||||||
<Parameter Key="test" Value="{x:True}" />
|
<Parameter Key="FromCategory" Value="{x:True}" />
|
||||||
<Parameter Key="State" Value="{x:Static vm:ItemState.Write}" />
|
<Parameter Key="State" Value="{x:Static vm:ItemState.Write}" />
|
||||||
</NavigateAction>
|
</NavigateAction>
|
||||||
</EventTriggerBehavior>
|
</EventTriggerBehavior>
|
||||||
|
|||||||
@@ -19,10 +19,11 @@
|
|||||||
Region="{Binding Named, StringFormat='{}{0}:Content'}"
|
Region="{Binding Named, StringFormat='{}{0}:Content'}"
|
||||||
Route="Item"
|
Route="Item"
|
||||||
Scope="self">
|
Scope="self">
|
||||||
|
<Parameter Key="FromCategory" Value="{x:False}" />
|
||||||
<Parameter Key="State" Value="{x:Static vm:ItemState.Read}" />
|
<Parameter Key="State" Value="{x:Static vm:ItemState.Read}" />
|
||||||
<Parameter Key="Name" Value="{Binding Name}" />
|
<Parameter Key="Name" Value="{Binding Name}" />
|
||||||
<Parameter Key="Archived" Value="{Binding Archived}" />
|
|
||||||
<Parameter Key="Favourite" Value="{Binding Favourite}" />
|
<Parameter Key="Favourite" Value="{Binding Favourite}" />
|
||||||
|
<Parameter Key="Archived" Value="{Binding Archived}" />
|
||||||
</NavigateAction>
|
</NavigateAction>
|
||||||
</ConditionAction>
|
</ConditionAction>
|
||||||
</AttachedBehaviour>
|
</AttachedBehaviour>
|
||||||
@@ -31,10 +32,11 @@
|
|||||||
Region="{Binding Named, StringFormat='{}{0}:Content'}"
|
Region="{Binding Named, StringFormat='{}{0}:Content'}"
|
||||||
Route="Item"
|
Route="Item"
|
||||||
Scope="self">
|
Scope="self">
|
||||||
|
<Parameter Key="FromCategory" Value="{x:False}" />
|
||||||
<Parameter Key="Name" Value="{Binding Name}" />
|
<Parameter Key="Name" Value="{Binding Name}" />
|
||||||
<Parameter Key="Immutable" Value="{x:Static vm:ItemState.Read}" />
|
<Parameter Key="State" Value="{x:Static vm:ItemState.Read}" />
|
||||||
<Parameter Key="Archived" Value="{Binding Archived}" />
|
|
||||||
<Parameter Key="Favourite" Value="{Binding Favourite}" />
|
<Parameter Key="Favourite" Value="{Binding Favourite}" />
|
||||||
|
<Parameter Key="Archived" Value="{Binding Archived}" />
|
||||||
</NavigateAction>
|
</NavigateAction>
|
||||||
</DataTriggerBehavior>
|
</DataTriggerBehavior>
|
||||||
</Interaction.Behaviors>
|
</Interaction.Behaviors>
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
<ConditionAction>
|
<ConditionAction>
|
||||||
<ConditionAction.Condition>
|
<ConditionAction.Condition>
|
||||||
<ConditionalExpression ForwardChaining="And">
|
<ConditionalExpression ForwardChaining="And">
|
||||||
<ComparisonCondition LeftOperand="{Binding Test}" RightOperand="True" />
|
<ComparisonCondition LeftOperand="{Binding FromCategory}" RightOperand="True" />
|
||||||
</ConditionalExpression>
|
</ConditionalExpression>
|
||||||
</ConditionAction.Condition>
|
</ConditionAction.Condition>
|
||||||
<NavigateBackAction Region="Left" />
|
<NavigateBackAction Region="Left" />
|
||||||
@@ -32,7 +32,7 @@
|
|||||||
Region="{Binding Named, StringFormat='{}{0}:Content'}"
|
Region="{Binding Named, StringFormat='{}{0}:Content'}"
|
||||||
Route="Item"
|
Route="Item"
|
||||||
Scope="self">
|
Scope="self">
|
||||||
<Parameter Key="test" Value="{x:True}" />
|
<Parameter Key="FromCategory" Value="{x:True}" />
|
||||||
<Parameter Key="State" Value="{x:Static vm:ItemState.Write}" />
|
<Parameter Key="State" Value="{x:Static vm:ItemState.Write}" />
|
||||||
</NavigateAction>
|
</NavigateAction>
|
||||||
</DataTriggerBehavior>
|
</DataTriggerBehavior>
|
||||||
|
|||||||
@@ -7,7 +7,6 @@
|
|||||||
x:DataType="vm:LockerNavigationViewModel"
|
x:DataType="vm:LockerNavigationViewModel"
|
||||||
Content="{Binding Name}"
|
Content="{Binding Name}"
|
||||||
IsExpanded="{Binding Expanded}"
|
IsExpanded="{Binding Expanded}"
|
||||||
IsSelected="{Binding Selected}"
|
|
||||||
MenuItemsSource="{Binding}"
|
MenuItemsSource="{Binding}"
|
||||||
NavigationViewItemExtension.IsItemClickEnabled="True"
|
NavigationViewItemExtension.IsItemClickEnabled="True"
|
||||||
SelectsOnInvoked="True">
|
SelectsOnInvoked="True">
|
||||||
@@ -16,7 +15,7 @@
|
|||||||
<ConditionAction>
|
<ConditionAction>
|
||||||
<ConditionAction.Condition>
|
<ConditionAction.Condition>
|
||||||
<ConditionalExpression ForwardChaining="And">
|
<ConditionalExpression ForwardChaining="And">
|
||||||
<ComparisonCondition LeftOperand="{Binding Selected}" RightOperand="True" />
|
<ComparisonCondition LeftOperand="{Binding $parent[NavigationViewItem].IsSelected}" RightOperand="True" />
|
||||||
</ConditionalExpression>
|
</ConditionalExpression>
|
||||||
</ConditionAction.Condition>
|
</ConditionAction.Condition>
|
||||||
<NavigateAction Region="Main" Route="OpenLocker">
|
<NavigateAction Region="Main" Route="OpenLocker">
|
||||||
@@ -32,7 +31,7 @@
|
|||||||
<ConditionAction>
|
<ConditionAction>
|
||||||
<ConditionAction.Condition>
|
<ConditionAction.Condition>
|
||||||
<ConditionalExpression ForwardChaining="And">
|
<ConditionalExpression ForwardChaining="And">
|
||||||
<ComparisonCondition LeftOperand="{Binding Selected}" RightOperand="True" />
|
<ComparisonCondition LeftOperand="{Binding $parent[NavigationViewItem].IsSelected}" RightOperand="True" />
|
||||||
</ConditionalExpression>
|
</ConditionalExpression>
|
||||||
</ConditionAction.Condition>
|
</ConditionAction.Condition>
|
||||||
<ChangePropertyAction
|
<ChangePropertyAction
|
||||||
@@ -42,6 +41,28 @@
|
|||||||
<InvokeNavigationViewItemAction />
|
<InvokeNavigationViewItemAction />
|
||||||
</ConditionAction>
|
</ConditionAction>
|
||||||
</DataTriggerBehavior>
|
</DataTriggerBehavior>
|
||||||
|
<AttachedBehaviour>
|
||||||
|
<ConditionAction>
|
||||||
|
<ConditionAction.Condition>
|
||||||
|
<ConditionalExpression ForwardChaining="And">
|
||||||
|
<ComparisonCondition LeftOperand="{Binding Opened}" RightOperand="False" />
|
||||||
|
</ConditionalExpression>
|
||||||
|
</ConditionAction.Condition>
|
||||||
|
<NavigateAction Region="Main" Route="OpenLocker">
|
||||||
|
<Parameter Key="Name" Value="{Binding Name}" />
|
||||||
|
</NavigateAction>
|
||||||
|
</ConditionAction>
|
||||||
|
<ConditionAction>
|
||||||
|
<ConditionAction.Condition>
|
||||||
|
<ConditionalExpression ForwardChaining="And">
|
||||||
|
<ComparisonCondition LeftOperand="{Binding Opened}" RightOperand="True" />
|
||||||
|
<ComparisonCondition LeftOperand="{Binding Activated}" RightOperand="False" />
|
||||||
|
</ConditionalExpression>
|
||||||
|
</ConditionAction.Condition>
|
||||||
|
<NavigateAction Region="Main" Route="Locker" />
|
||||||
|
<InvokeNavigationViewItemAction />
|
||||||
|
</ConditionAction>
|
||||||
|
</AttachedBehaviour>
|
||||||
<AttachedEventTriggerBehaviour RoutedEvent="{x:Static NavigationViewItemExtension.ItemClickEvent}">
|
<AttachedEventTriggerBehaviour RoutedEvent="{x:Static NavigationViewItemExtension.ItemClickEvent}">
|
||||||
<ConditionAction>
|
<ConditionAction>
|
||||||
<ConditionAction.Condition>
|
<ConditionAction.Condition>
|
||||||
|
|||||||
@@ -7,7 +7,9 @@
|
|||||||
<NavigationView
|
<NavigationView
|
||||||
FooterMenuItemsSource="{Binding Footer}"
|
FooterMenuItemsSource="{Binding Footer}"
|
||||||
MenuItemTemplate="{Binding Template}"
|
MenuItemTemplate="{Binding Template}"
|
||||||
MenuItemsSource="{Binding}">
|
MenuItemsSource="{Binding}"
|
||||||
|
SelectedItem="{Binding SelectedItem}"
|
||||||
|
SelectionFollowsFocus="True">
|
||||||
<NavigationView.Resources>
|
<NavigationView.Resources>
|
||||||
<CornerRadius x:Key="NavigationViewContentGridCornerRadius">0</CornerRadius>
|
<CornerRadius x:Key="NavigationViewContentGridCornerRadius">0</CornerRadius>
|
||||||
<Thickness x:Key="NavigationViewContentGridBorderThickness">1,0,0,0</Thickness>
|
<Thickness x:Key="NavigationViewContentGridBorderThickness">1,0,0,0</Thickness>
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ public class AggerateMainViewModelHandler(IPublisher publisher,
|
|||||||
{
|
{
|
||||||
public Task Handle(AggerateEventArgs<IMainNavigationViewModel> args)
|
public Task Handle(AggerateEventArgs<IMainNavigationViewModel> args)
|
||||||
{
|
{
|
||||||
|
bool selected = true;
|
||||||
foreach (IComponentHost locker in lockers.OrderBy(x => x.Services.GetRequiredService<IConfigurationDescriptor<LockerConfiguration>>()
|
foreach (IComponentHost locker in lockers.OrderBy(x => x.Services.GetRequiredService<IConfigurationDescriptor<LockerConfiguration>>()
|
||||||
is IConfigurationDescriptor<LockerConfiguration> descriptor ? descriptor.Name : null))
|
is IConfigurationDescriptor<LockerConfiguration> descriptor ? descriptor.Name : null))
|
||||||
{
|
{
|
||||||
@@ -16,10 +17,12 @@ public class AggerateMainViewModelHandler(IPublisher publisher,
|
|||||||
{
|
{
|
||||||
if (locker.Services.GetRequiredService<IServiceFactory>() is IServiceFactory factory)
|
if (locker.Services.GetRequiredService<IServiceFactory>() is IServiceFactory factory)
|
||||||
{
|
{
|
||||||
if (factory.Create<LockerNavigationViewModel>(descriptor.Name) is LockerNavigationViewModel viewModel)
|
if (factory.Create<LockerNavigationViewModel>(descriptor.Name, selected) is LockerNavigationViewModel viewModel)
|
||||||
{
|
{
|
||||||
publisher.Publish(Create.As<IMainNavigationViewModel>(viewModel),
|
publisher.Publish(Create.As<IMainNavigationViewModel>(viewModel),
|
||||||
nameof(MainViewModel));
|
nameof(MainViewModel));
|
||||||
|
|
||||||
|
selected = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,7 +26,8 @@ public partial class ItemViewModel :
|
|||||||
private string name;
|
private string name;
|
||||||
|
|
||||||
[ObservableProperty]
|
[ObservableProperty]
|
||||||
private bool test;
|
private bool fromCategory;
|
||||||
|
|
||||||
public ItemViewModel(IServiceProvider provider,
|
public ItemViewModel(IServiceProvider provider,
|
||||||
IServiceFactory factory,
|
IServiceFactory factory,
|
||||||
IMediator mediator,
|
IMediator mediator,
|
||||||
@@ -36,12 +37,12 @@ public partial class ItemViewModel :
|
|||||||
IContentTemplate template,
|
IContentTemplate template,
|
||||||
NamedComponent named,
|
NamedComponent named,
|
||||||
ItemState state = ItemState.Read,
|
ItemState state = ItemState.Read,
|
||||||
bool test = false,
|
bool fromCategory = false,
|
||||||
string name = "",
|
string name = "",
|
||||||
bool favourite = false,
|
bool favourite = false,
|
||||||
bool archived = false) : base(provider, factory, mediator, publisher, subscriber, disposer)
|
bool archived = false) : base(provider, factory, mediator, publisher, subscriber, disposer)
|
||||||
{
|
{
|
||||||
Test = test;
|
FromCategory = fromCategory;
|
||||||
Named = $"{named}";
|
Named = $"{named}";
|
||||||
Template = template;
|
Template = template;
|
||||||
State = state;
|
State = state;
|
||||||
|
|||||||
@@ -9,7 +9,8 @@ public partial class LockerNavigationViewModel :
|
|||||||
INotificationHandler<OpenedEventArgs<Locker>>,
|
INotificationHandler<OpenedEventArgs<Locker>>,
|
||||||
INotificationHandler<ClosedEventArgs<Locker>>,
|
INotificationHandler<ClosedEventArgs<Locker>>,
|
||||||
INotificationHandler<ActivatedEventArgs<Locker>>,
|
INotificationHandler<ActivatedEventArgs<Locker>>,
|
||||||
INotificationHandler<DeactivatedEventArgs<Locker>>
|
INotificationHandler<DeactivatedEventArgs<Locker>>,
|
||||||
|
ISelectable
|
||||||
{
|
{
|
||||||
[ObservableProperty]
|
[ObservableProperty]
|
||||||
private bool activated;
|
private bool activated;
|
||||||
@@ -33,10 +34,12 @@ public partial class LockerNavigationViewModel :
|
|||||||
ISubscription subscriber,
|
ISubscription subscriber,
|
||||||
IDisposer disposer,
|
IDisposer disposer,
|
||||||
IContentTemplate template,
|
IContentTemplate template,
|
||||||
string name) : base(provider, factory, mediator, publisher, subscriber, disposer)
|
string name,
|
||||||
|
bool selected) : base(provider, factory, mediator, publisher, subscriber, disposer)
|
||||||
{
|
{
|
||||||
Template = template;
|
Template = template;
|
||||||
Name = name;
|
Name = name;
|
||||||
|
Selected = selected;
|
||||||
}
|
}
|
||||||
|
|
||||||
public IContentTemplate Template { get; set; }
|
public IContentTemplate Template { get; set; }
|
||||||
|
|||||||
Reference in New Issue
Block a user