BasicListView.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="370" Width="754" xmlns:local="using:AvaloniaUI.Demos.Book._19.StoreDatabase" x:Class="AvaloniaUI.BasicListView" Title="BasicListView"> <Window.Resources> <local:ImagePathToBitmapConverter x:Key="ImagePathConverter" /> <local:PriceToBackgroundConverter x:Key="PriceToBackgroundConverter" HighlightBrush="PaleGoldenrod" MinPrice="100" /> </Window.Resources> <Grid Margin="10" RowDefinitions="*,auto,auto"> <DataGrid x:Name="lstProducts" x:DataType="local:Product" AutoGenerateColumns="False" Grid.Row="0" Margin="0"> <DataGrid.Columns> <!-- Name --> <DataGridTextColumn Header="Name" Binding="{Binding ModelName}" /> <!-- Model --> <DataGridTextColumn Header="Model" Binding="{Binding ModelNumber}" /> <!-- Description --> <DataGridTextColumn Header="Description" Width="3*" Binding="{Binding Description}" /> <!-- Picture --> <DataGridTemplateColumn Header="Picture"> <DataGridTemplateColumn.CellTemplate> <DataTemplate x:DataType="local:Product"> <Image Source="{Binding ProductImagePath, Converter={StaticResource ImagePathConverter}}" Width="64" Height="64" Stretch="Uniform" /> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> <!-- Price --> <DataGridTemplateColumn Header="Price"> <!-- 显示时的模板 --> <DataGridTemplateColumn.CellTemplate> <DataTemplate x:DataType="local:Product"> <Border Background="{Binding ., Converter={StaticResource PriceToBackgroundConverter}}" Padding="4"> <TextBlock Text="{Binding UnitCost, StringFormat='{}{0:C}'}" /> </Border> </DataTemplate> </DataGridTemplateColumn.CellTemplate> <!-- 编辑时的模板(双击进入编辑用这个) --> <DataGridTemplateColumn.CellEditingTemplate> <DataTemplate x:DataType="local:Product"> <Border Background="{Binding ., Converter={StaticResource PriceToBackgroundConverter}}" Padding="2"> <TextBox Text="{Binding UnitCost, Mode=TwoWay}" BorderThickness="0" Padding="0" /> </Border> </DataTemplate> </DataGridTemplateColumn.CellEditingTemplate> </DataGridTemplateColumn> </DataGrid.Columns> </DataGrid> </Grid> </Window>
BasicListView.axaml.cs代码
using Avalonia;
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
using AvaloniaUI.Demos.Book._19.StoreDatabase;
namespace AvaloniaUI;
public partial class BasicListView : Window
{
private StoreDb1 db = new StoreDb1();
public BasicListView()
{
InitializeComponent();
lstProducts.ItemsSource = db.GetProducts();
}
}
运行效果

浙公网安备 33010602011771号