自定义扩展已经更新,增加了MessageBox类。https://www.cnblogs.com/dalgleish/p/18972924
RadioButtonList.axaml代码
<Window xmlns="https://github.com/avaloniaui" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" Height="300" Width="300" xmlns:local="using:AvaloniaUI.Demos.Book._19.StoreDatabase" x:Class="AvaloniaUI.RadioButtonList" Title="RadioButtonList"> <Window.Styles> <Style Selector="ListBox.radio-list"> <Setter Property="SelectionMode" Value="Single"/> </Style> <Style Selector="ListBox.radio-list ListBoxItem"> <Setter Property="Margin" Value="2" /> <Setter Property="Template"> <ControlTemplate TargetType="ListBoxItem"> <RadioButton GroupName="RbGroup" Focusable="False" IsChecked="{TemplateBinding IsSelected, Mode=TwoWay}"> <ContentPresenter Content="{TemplateBinding Content}" /> </RadioButton> </ControlTemplate> </Setter> </Style> </Window.Styles> <Grid Margin="8" RowDefinitions="*,auto"> <ListBox x:Name="lstProducts" Grid.Row="0" Classes="radio-list"> <ListBox.ItemTemplate> <DataTemplate x:DataType="local:Product"> <TextBlock Text="{Binding ModelName}" /> </DataTemplate> </ListBox.ItemTemplate> </ListBox> <Button Grid.Row="1" Margin="0,5,0,0" Click="cmdGetSelectedItem"> Get Selected Item </Button> </Grid> </Window>
RadioButtonList.axaml.cs代码
using Avalonia;
using Avalonia.Controls;
using Avalonia.Interactivity;
using Avalonia.Markup.Xaml;
using AvaloniaUI.Demos.Book._19.StoreDatabase;
using Shares.Avalonia;
using System;
namespace AvaloniaUI;
public partial class RadioButtonList : Window
{
private StoreDb1 db = new StoreDb1();
public RadioButtonList()
{
InitializeComponent();
lstProducts.ItemsSource = db.GetProducts();
//this.Load("avares://Shares/Avalonia/Styles/Styles.axaml");
}
private void cmdGetSelectedItem(object? sender, RoutedEventArgs e)
{
MessageBox.Show(this, $"选中{lstProducts.SelectedIndex}");
}
}
运行效果

浙公网安备 33010602011771号