diff --git a/src/Avalonia.FuncUI.ControlCatalog/Avalonia.FuncUI.ControlCatalog/Views/Tabs/WindowMenuDemo.fs b/src/Avalonia.FuncUI.ControlCatalog/Avalonia.FuncUI.ControlCatalog/Views/Tabs/WindowMenuDemo.fs index 704a7c11..5d5e7278 100644 --- a/src/Avalonia.FuncUI.ControlCatalog/Avalonia.FuncUI.ControlCatalog/Views/Tabs/WindowMenuDemo.fs +++ b/src/Avalonia.FuncUI.ControlCatalog/Avalonia.FuncUI.ControlCatalog/Views/Tabs/WindowMenuDemo.fs @@ -31,10 +31,12 @@ module WindowMenuDemo = MenuItem.create [ MenuItem.header "Light" MenuItem.onClick (fun _ -> "#e74c3c" |> SetColor |> dispatch) + MenuItem.toggleType MenuItemToggleType.Radio ] MenuItem.create [ MenuItem.header "Dark" MenuItem.onClick (fun _ -> "#c0392b" |> SetColor |> dispatch) + MenuItem.toggleType MenuItemToggleType.Radio ] ] ] diff --git a/src/Avalonia.FuncUI/DSL/MenuItem.fs b/src/Avalonia.FuncUI/DSL/MenuItem.fs index 4464927b..7baaa104 100644 --- a/src/Avalonia.FuncUI/DSL/MenuItem.fs +++ b/src/Avalonia.FuncUI/DSL/MenuItem.fs @@ -60,4 +60,13 @@ module MenuItem = AttrBuilder<'t>.CreateSubscription(MenuItem.PointerExitedItemEvent, func, ?subPatchOptions = subPatchOptions) static member onSubMenuOpened<'t when 't :> MenuItem>(func: RoutedEventArgs -> unit, ?subPatchOptions) = - AttrBuilder<'t>.CreateSubscription(MenuItem.SubmenuOpenedEvent, func, ?subPatchOptions = subPatchOptions) \ No newline at end of file + AttrBuilder<'t>.CreateSubscription(MenuItem.SubmenuOpenedEvent, func, ?subPatchOptions = subPatchOptions) + + static member toggleType<'t when 't :> MenuItem>(toggleType: MenuItemToggleType) : IAttr<'t> = + AttrBuilder<'t>.CreateProperty(MenuItem.ToggleTypeProperty, toggleType, ValueNone) + + static member isChecked<'t when 't :> MenuItem>(isChecked: bool) : IAttr<'t> = + AttrBuilder<'t>.CreateProperty(MenuItem.IsCheckedProperty, isChecked, ValueNone) + + static member groupName<'t when 't :> MenuItem>(groupName: string) : IAttr<'t> = + AttrBuilder<'t>.CreateProperty(MenuItem.GroupNameProperty, groupName, ValueNone)