Компонент ButtonWithOptionsControl¶
Для использования необходимо подключить nuget-пакет ModPlusAPI версии не ниже 37.0 (если в пакете модуля версия ниже)!
<PackageReference Include="ModPlusAPI" Version="37.0.0" ExcludeAssets="runtime" />
ButtonWithOptionsControl¶
ButtonWithOptionsControl — элемент управления WPF, представляющий кнопку с выпадающим списком вариантов.
Возможности¶
- Основная кнопка с текстом (
ButtonHeader) - До 10 опций (
Option1Header…Option10Header) - Поддержка привязок (например, для локализации)
- Вызов команды при выборе опции
- Передача информации о выбранном варианте в команду
Использование¶
Пример XAML¶
<controls:ButtonWithOptionsControl
Command="{Binding SelectedButtonOptionCommand}"
ButtonHeader="Actions"
Option1Header="Create"
Option2Header="Edit"
Option3Header="Delete" />
Пример с привязкой к ресурсам:
<controls:ButtonWithOptionsControl
Command="{Binding SelectedButtonOptionCommand}"
ButtonHeader="{Binding Source={StaticResource Lang}, XPath=actions}"
Option1Header="{Binding Source={StaticResource Lang}, XPath=optCreate}"
Option2Header="{Binding Source={StaticResource Lang}, XPath=optEdit}" />
Обработка выбора¶
Команда получает аргументы типа ButtonWithOptionsArgs, содержащие:
Window— родительское окноOption— выбранная опция (ButtonOption)
Пример команды¶
public ICommand SelectedButtonOptionCommand =>
new RelayCommand<ButtonWithOptionsArgs>(args =>
{
MessageBox.Show($"Selected: {args.Option}");
});
Свойства¶
| Свойство | Описание |
|---|---|
ButtonHeader |
Текст основной кнопки |
Option1Header … Option10Header |
Тексты опций. Пустые не отображаются |
Command |
Команда, вызываемая при выборе |
Пример из тестового приложения¶
<StackPanel Orientation="Horizontal">
<TextBlock Text="Button with options:" />
<controls:ButtonWithOptionsControl
Command="{Binding SelectedButtonOptionCommand}"
ButtonHeader="No lang"
Option1Header="Option 1"
Option2Header="Option 2" />
<controls:ButtonWithOptionsControl
Command="{Binding SelectedButtonOptionCommand}"
ButtonHeader="All options"
Option1Header="Option 1"
Option2Header="Option 2"
Option3Header="Option 3"
Option4Header="Option 4"
Option5Header="Option 5"
Option6Header="Option 6"
Option7Header="Option 7"
Option8Header="Option 8"
Option9Header="Option 9"
Option10Header="Option 10" />
</StackPanel>