mirror of
https://github.com/amwx/FluentAvalonia.git
synced 2026-10-28 20:11:51 +08:00
86 lines
2.5 KiB
C#
86 lines
2.5 KiB
C#
using System.Collections.Generic;
|
|
using FluentAvalonia.UI.Controls;
|
|
|
|
namespace FluentAvaloniaSamples.ViewModels;
|
|
|
|
public class MenuFlyoutPageViewModel : ViewModelBase
|
|
{
|
|
public MenuFlyoutPageViewModel()
|
|
{
|
|
TestMenuItems = new List<TempMenuItemBase>
|
|
{
|
|
new TempMenuItem { Text = "Item 1", Icon = Symbol.Cut },
|
|
new TempMenuItem { Text = "Item 2", Icon = Symbol.Copy },
|
|
new TempMenuItem { Text = "Item 3", Icon = Symbol.Paste },
|
|
new TempMenuSeparator(),
|
|
new TempSubItem
|
|
{
|
|
Text = "Cascading Menu",
|
|
SubItems = new List<TempMenuItemBase>
|
|
{
|
|
new TempMenuItem { Text = "Sub Item 1", Icon = Symbol.Globe },
|
|
new TempMenuItem { Text = "Sub Item 2", Icon = Symbol.Games },
|
|
new TempMenuItem { Text = "Sub Item 3", Icon = Symbol.Mail },
|
|
}
|
|
},
|
|
new TempMenuSeparator(),
|
|
new TempToggleMenuItem {Text = "Toggle 1"},
|
|
new TempToggleMenuItem {Text = "Toggle 1"},
|
|
new TempMenuSeparator(),
|
|
new TempRadioMenuItem { Text = "Radio1 Group 1", GroupName = "Group1", IsChecked = true},
|
|
new TempRadioMenuItem { Text = "Radio2 Group 1", GroupName = "Group1"},
|
|
new TempMenuSeparator(),
|
|
new TempRadioMenuItem { Text = "Radio1 Group 2", GroupName = "Group2"},
|
|
new TempRadioMenuItem { Text = "Radio2 Group 2", GroupName = "Group2", IsChecked = true},
|
|
};
|
|
}
|
|
|
|
public List<TempMenuItemBase> TestMenuItems { get; set; }
|
|
}
|
|
|
|
public abstract class TempMenuItemBase : ViewModelBase
|
|
{ }
|
|
|
|
public class TempMenuItem : TempMenuItemBase
|
|
{
|
|
public string Text { get; set; }
|
|
|
|
public Symbol Icon { get; set; }
|
|
}
|
|
|
|
public class TempMenuSeparator : TempMenuItemBase { }
|
|
|
|
public class TempToggleMenuItem : TempMenuItemBase
|
|
{
|
|
public string Text { get; set; }
|
|
|
|
public bool IsChecked
|
|
{
|
|
get => _isChecked;
|
|
set => RaiseAndSetIfChanged(ref _isChecked, value);
|
|
}
|
|
|
|
private bool _isChecked;
|
|
}
|
|
|
|
public class TempRadioMenuItem : TempMenuItemBase
|
|
{
|
|
public string Text { get; set; }
|
|
|
|
public bool IsChecked
|
|
{
|
|
get => _isChecked;
|
|
set => RaiseAndSetIfChanged(ref _isChecked, value);
|
|
}
|
|
|
|
public string GroupName { get; set; }
|
|
|
|
private bool _isChecked;
|
|
}
|
|
|
|
public class TempSubItem : TempMenuItemBase
|
|
{
|
|
public string Text { get; set; }
|
|
public List<TempMenuItemBase> SubItems { get; set; }
|
|
}
|