feat: make button group functional. Update Demo.
This commit is contained in:
@@ -13,10 +13,20 @@
|
||||
mc:Ignorable="d">
|
||||
|
||||
<StackPanel Margin="20" Spacing="20">
|
||||
<u:ButtonGroup Classes="Primary Solid" ItemsSource="{Binding Items}" />
|
||||
<u:ButtonGroup Classes="Primary" ItemsSource="{Binding Items}" />
|
||||
<u:ButtonGroup Classes="Primary Borderless" ItemsSource="{Binding Items}" />
|
||||
<u:ButtonGroup Classes="Primary Large" ItemsSource="{Binding Items}" />
|
||||
<u:ButtonGroup Classes="Primary Small" ItemsSource="{Binding Items}" />
|
||||
<u:ButtonGroup Classes="Primary Solid"
|
||||
CommandBinding="{Binding InvokeCommand}"
|
||||
ItemsSource="{Binding Items}" >
|
||||
<u:ButtonGroup.ItemTemplate>
|
||||
<DataTemplate x:DataType="vm:ButtonItem">
|
||||
<TextBlock Text="{Binding Name}" Foreground="{DynamicResource SemiGrey3}"></TextBlock>
|
||||
</DataTemplate>
|
||||
</u:ButtonGroup.ItemTemplate>
|
||||
</u:ButtonGroup>
|
||||
|
||||
<u:ButtonGroup Classes="Primary"
|
||||
ContentBinding="{Binding Name}"
|
||||
CommandBinding="{Binding InvokeCommand}"
|
||||
ItemsSource="{Binding Items}" >
|
||||
</u:ButtonGroup>
|
||||
</StackPanel>
|
||||
</UserControl>
|
||||
|
||||
@@ -1,11 +1,35 @@
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Input;
|
||||
using CommunityToolkit.Mvvm.Input;
|
||||
using Ursa.Controls;
|
||||
|
||||
namespace Ursa.Demo.ViewModels;
|
||||
|
||||
public class ButtonGroupDemoViewModel: ViewModelBase
|
||||
{
|
||||
public ObservableCollection<string> Items { get; set; } = new ()
|
||||
public ObservableCollection<ButtonItem> Items { get; set; } = new ()
|
||||
{
|
||||
"Ding", "Otter", "Husky", "Mr. 17", "Cass"
|
||||
new ButtonItem(){Name = "Ding" },
|
||||
new ButtonItem(){Name = "Otter" },
|
||||
new ButtonItem(){Name = "Husky" },
|
||||
new ButtonItem(){Name = "Mr. 17" },
|
||||
new ButtonItem(){Name = "Cass" },
|
||||
};
|
||||
}
|
||||
|
||||
public class ButtonItem
|
||||
{
|
||||
public string? Name { get; set; }
|
||||
public ICommand InvokeCommand { get; set; }
|
||||
|
||||
public ButtonItem()
|
||||
{
|
||||
InvokeCommand = new AsyncRelayCommand(Invoke);
|
||||
}
|
||||
|
||||
private async Task Invoke()
|
||||
{
|
||||
await MessageBox.ShowAsync("Hello " + Name);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user