file scoped namespaces (#565)
This commit is contained in:
@@ -6,82 +6,81 @@ using Windows.UI.Xaml;
|
||||
using Windows.UI.Xaml.Controls;
|
||||
using Wino.Core.Domain.Entities.Mail;
|
||||
|
||||
namespace Wino.MenuFlyouts
|
||||
namespace Wino.MenuFlyouts;
|
||||
|
||||
public class MoveButtonMenuItemClickedEventArgs
|
||||
{
|
||||
public class MoveButtonMenuItemClickedEventArgs
|
||||
public Guid ClickedFolderId { get; set; }
|
||||
}
|
||||
|
||||
public partial class MoveButtonFlyout : MenuFlyout
|
||||
{
|
||||
public event TypedEventHandler<MoveButtonFlyout, MoveButtonMenuItemClickedEventArgs> MenuItemClick;
|
||||
public static readonly DependencyProperty FoldersProperty = DependencyProperty.Register(nameof(Folders), typeof(List<MailItemFolder>), typeof(MoveButtonFlyout), new PropertyMetadata(null, new PropertyChangedCallback(OnFoldersChanged)));
|
||||
|
||||
public List<MailItemFolder> Folders
|
||||
{
|
||||
public Guid ClickedFolderId { get; set; }
|
||||
get { return (List<MailItemFolder>)GetValue(FoldersProperty); }
|
||||
set { SetValue(FoldersProperty, value); }
|
||||
}
|
||||
|
||||
public partial class MoveButtonFlyout : MenuFlyout
|
||||
private static void OnFoldersChanged(DependencyObject obj, DependencyPropertyChangedEventArgs args)
|
||||
{
|
||||
public event TypedEventHandler<MoveButtonFlyout, MoveButtonMenuItemClickedEventArgs> MenuItemClick;
|
||||
public static readonly DependencyProperty FoldersProperty = DependencyProperty.Register(nameof(Folders), typeof(List<MailItemFolder>), typeof(MoveButtonFlyout), new PropertyMetadata(null, new PropertyChangedCallback(OnFoldersChanged)));
|
||||
|
||||
public List<MailItemFolder> Folders
|
||||
if (obj is MoveButtonFlyout menu)
|
||||
{
|
||||
get { return (List<MailItemFolder>)GetValue(FoldersProperty); }
|
||||
set { SetValue(FoldersProperty, value); }
|
||||
menu.InitializeMenu();
|
||||
}
|
||||
|
||||
private static void OnFoldersChanged(DependencyObject obj, DependencyPropertyChangedEventArgs args)
|
||||
|
||||
}
|
||||
|
||||
private void InitializeMenu()
|
||||
{
|
||||
Dispose();
|
||||
|
||||
Items.Clear();
|
||||
|
||||
if (Folders == null || !Folders.Any())
|
||||
return;
|
||||
|
||||
// TODO: Child folders.
|
||||
|
||||
foreach (var item in Folders)
|
||||
{
|
||||
if (obj is MoveButtonFlyout menu)
|
||||
// We don't expect this, but it crashes startup.
|
||||
// Just to be on the safe side.
|
||||
if (item.FolderName != null)
|
||||
{
|
||||
menu.InitializeMenu();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void InitializeMenu()
|
||||
{
|
||||
Dispose();
|
||||
|
||||
Items.Clear();
|
||||
|
||||
if (Folders == null || !Folders.Any())
|
||||
return;
|
||||
|
||||
// TODO: Child folders.
|
||||
|
||||
foreach (var item in Folders)
|
||||
{
|
||||
// We don't expect this, but it crashes startup.
|
||||
// Just to be on the safe side.
|
||||
if (item.FolderName != null)
|
||||
var folderMenuItem = new MenuFlyoutItem()
|
||||
{
|
||||
var folderMenuItem = new MenuFlyoutItem()
|
||||
{
|
||||
Tag = item,
|
||||
Text = item.FolderName
|
||||
};
|
||||
Tag = item,
|
||||
Text = item.FolderName
|
||||
};
|
||||
|
||||
folderMenuItem.Click += MenuItemClicked;
|
||||
folderMenuItem.Click += MenuItemClicked;
|
||||
|
||||
Items.Add(folderMenuItem);
|
||||
}
|
||||
Items.Add(folderMenuItem);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void MenuItemClicked(object sender, RoutedEventArgs e)
|
||||
private void MenuItemClicked(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var clickedFolder = (sender as MenuFlyoutItem).Tag as MailItemFolder;
|
||||
|
||||
MenuItemClick?.Invoke(this, new MoveButtonMenuItemClickedEventArgs()
|
||||
{
|
||||
var clickedFolder = (sender as MenuFlyoutItem).Tag as MailItemFolder;
|
||||
ClickedFolderId = clickedFolder.Id
|
||||
});
|
||||
}
|
||||
|
||||
MenuItemClick?.Invoke(this, new MoveButtonMenuItemClickedEventArgs()
|
||||
{
|
||||
ClickedFolderId = clickedFolder.Id
|
||||
});
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
public void Dispose()
|
||||
{
|
||||
foreach (var item in Items)
|
||||
{
|
||||
foreach (var item in Items)
|
||||
if (item is MenuFlyoutItem menuItem)
|
||||
{
|
||||
if (item is MenuFlyoutItem menuItem)
|
||||
{
|
||||
menuItem.Click -= MenuItemClicked;
|
||||
}
|
||||
menuItem.Click -= MenuItemClicked;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user