Skip to content

Commit dc63c55

Browse files
committed
Updated
1 parent fdd6a63 commit dc63c55

File tree

4 files changed

+21
-13
lines changed

4 files changed

+21
-13
lines changed

src/Files.App.Controls/BreadcrumbBar/BreadcrumbBar.Events.cs

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ private void RootItemButton_PointerPressed(object sender, PointerRoutedEventArgs
2525

2626
private void RootItemButton_PointerReleased(object sender, PointerRoutedEventArgs e)
2727
{
28+
RootItemClicked?.Invoke(this, EventArgs.Empty);
29+
2830
VisualStateManager.GoToState(this, "PointerOverItem", true);
2931
}
3032

@@ -57,7 +59,10 @@ private void RootChevronItemButton_PointerExited(object sender, PointerRoutedEve
5759

5860
private void RootItemChevronDropDownMenuFlyout_Opening(object? sender, object e)
5961
{
60-
RootItemDropDownFlyoutOpening?.Invoke(this, sender as MenuFlyout);
62+
if (sender is not MenuFlyout flyout)
63+
return;
64+
65+
RootItemDropDownFlyoutOpening?.Invoke(this, new(flyout));
6166
}
6267

6368
private void RootItemChevronDropDownMenuFlyout_Opened(object? sender, object e)
@@ -67,7 +72,10 @@ private void RootItemChevronDropDownMenuFlyout_Opened(object? sender, object e)
6772

6873
private void RootItemChevronDropDownMenuFlyout_Closed(object? sender, object e)
6974
{
70-
RootItemDropDownFlyoutOpening?.Invoke(this, sender as MenuFlyout);
75+
if (sender is not MenuFlyout flyout)
76+
return;
77+
78+
RootItemDropDownFlyoutOpening?.Invoke(this, new(flyout));
7179

7280
VisualStateManager.GoToState(this, "ChevronNormalOff", true);
7381
VisualStateManager.GoToState(this, "PointerNormal", true);

src/Files.App.Controls/BreadcrumbBar/BreadcrumbBar.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@ public partial class BreadcrumbBar : Control
4141
public event EventHandler<BreadcrumbBarItemDropDownFlyoutEventArgs>? ItemDropDownFlyoutClosed;
4242

4343
public event EventHandler? RootItemClicked;
44-
public event EventHandler<MenuFlyout>? RootItemDropDownFlyoutOpening;
45-
public event EventHandler<MenuFlyout>? RootItemDropDownFlyoutClosed;
44+
public event EventHandler<BreadcrumbBarItemDropDownFlyoutEventArgs>? RootItemDropDownFlyoutOpening;
45+
public event EventHandler<BreadcrumbBarItemDropDownFlyoutEventArgs>? RootItemDropDownFlyoutClosed;
4646

4747
// Constructor
4848

@@ -97,13 +97,13 @@ internal void RaiseItemClickedEvent(BreadcrumbBarItem item)
9797
internal void RaiseItemDropDownFlyoutOpening(BreadcrumbBarItem item, MenuFlyout flyout)
9898
{
9999
var index = _itemsRepeater?.GetElementIndex(item) ?? throw new ArgumentNullException($"{_itemsRepeater} is null.");
100-
ItemDropDownFlyoutOpening?.Invoke(this, new(item, index, flyout));
100+
ItemDropDownFlyoutOpening?.Invoke(this, new(flyout, item, index));
101101
}
102102

103103
internal void RaiseItemDropDownFlyoutClosed(BreadcrumbBarItem item, MenuFlyout flyout)
104104
{
105105
var index = _itemsRepeater?.GetElementIndex(item) ?? throw new ArgumentNullException($"{_itemsRepeater} is null.");
106-
ItemDropDownFlyoutClosed?.Invoke(this, new(item, index, flyout));
106+
ItemDropDownFlyoutClosed?.Invoke(this, new(flyout, item, index));
107107
}
108108

109109
// Event methods

src/Files.App.Controls/BreadcrumbBar/BreadcrumbBarItemDropDownFlyoutEventArgs.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@
33

44
namespace Files.App.Controls
55
{
6-
public record class BreadcrumbBarItemDropDownFlyoutEventArgs(BreadcrumbBarItem Item, int Index, MenuFlyout Flyout);
6+
public record class BreadcrumbBarItemDropDownFlyoutEventArgs(MenuFlyout Flyout, BreadcrumbBarItem? Item = null, int Index = -1);
77
}

tests/Files.App.UITests/Views/BreadcrumbBarPage.xaml.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -69,19 +69,19 @@ private void BreadcrumbBar1_RootItemClicked(object sender, System.EventArgs e)
6969
ClickedItemName = "Root item was clicked.";
7070
}
7171

72-
private void BreadcrumbBar1_RootItemDropDownFlyoutOpening(object sender, MenuFlyout e)
72+
private void BreadcrumbBar1_RootItemDropDownFlyoutOpening(object sender, BreadcrumbBarItemDropDownFlyoutEventArgs e)
7373
{
7474
if (sender is not Controls.BreadcrumbBar breadcrumbBar)
7575
return;
7676

77-
e.Items.Add(new MenuFlyoutItem { Icon = new FontIcon() { Glyph = "\uE8B7" }, Text = "Root Item 1" });
78-
e.Items.Add(new MenuFlyoutItem { Icon = new FontIcon() { Glyph = "\uE8B7" }, Text = "Root Item 2" });
79-
e.Items.Add(new MenuFlyoutItem { Icon = new FontIcon() { Glyph = "\uE8B7" }, Text = "Root Item 3" });
77+
e.Flyout.Items.Add(new MenuFlyoutItem { Icon = new FontIcon() { Glyph = "\uE8B7" }, Text = "Root Item 1" });
78+
e.Flyout.Items.Add(new MenuFlyoutItem { Icon = new FontIcon() { Glyph = "\uE8B7" }, Text = "Root Item 2" });
79+
e.Flyout.Items.Add(new MenuFlyoutItem { Icon = new FontIcon() { Glyph = "\uE8B7" }, Text = "Root Item 3" });
8080
}
8181

82-
private void BreadcrumbBar1_RootItemDropDownFlyoutClosed(object sender, MenuFlyout e)
82+
private void BreadcrumbBar1_RootItemDropDownFlyoutClosed(object sender, BreadcrumbBarItemDropDownFlyoutEventArgs e)
8383
{
84-
84+
e.Flyout.Items.Clear();
8585
}
8686
}
8787
}

0 commit comments

Comments
 (0)