(之后不再重复申明)19章中,所有例子都基于https://www.cnblogs.com/dalgleish/p/19331015
BindProductObject.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" x:Class="AvaloniaUI.BindProductObject" xmlns:local ="using:AvaloniaUI.Demos.Book._19.StoreDatabase" Title="BindProductObject"> <Grid RowDefinitions="auto,*"> <!-- 顶部输入区 --> <Grid ColumnDefinitions="auto,*,auto"> <TextBlock Margin="7" Text="Product ID:"/> <TextBox x:Name="txtID" Margin="5" Grid.Column="1" Text="356"/> <Button Grid.Column="2" Margin="5" Padding="2" Click="cmdGetProduct_Click" Content="Get Product"/> </Grid> <!-- 产品详情 --> <Border Grid.Row="1" Padding="7" Margin="7" Background="LightSteelBlue"> <Grid x:Name="gridProductDetails" ColumnDefinitions="auto,*" RowDefinitions="auto,auto,auto,auto,*" x:DataType="local:Product"> <TextBlock Margin="7" Text="Model Number:"/> <TextBox Margin="5" Grid.Column="1" Text="{Binding ModelNumber}"/> <TextBlock Margin="7" Grid.Row="1" Text="Model Name:"/> <TextBox Margin="5" Grid.Row="1" Grid.Column="1" Text="{Binding ModelName}"/> <TextBlock Margin="7" Grid.Row="2" Text="Unit Cost:"/> <TextBox Margin="5" Grid.Row="2" Grid.Column="1" Text="{Binding UnitCost}"/> <TextBlock Margin="7,7,7,0" Grid.Row="3" Text="Description:"/> <ScrollViewer Grid.Row="4" Grid.Column="0" Grid.ColumnSpan="2"> <TextBox Margin="7" TextWrapping="Wrap" AcceptsReturn="True" Text="{Binding Description}"/> </ScrollViewer> </Grid> </Border> </Grid> </Window>
BindProductObject.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;
using System.Data;
namespace AvaloniaUI;
public partial class BindProductObject : Window
{
StoreDb1 db1 = new StoreDb1();
public BindProductObject()
{
InitializeComponent();
}
private void cmdGetProduct_Click(object? sender, RoutedEventArgs e)
{
int ID;
if (Int32.TryParse(txtID.Text, out ID))
{
try
{
gridProductDetails.DataContext = db1.GetProduct(ID);
}
catch
{
Console.WriteLine("Error contacting database.");
}
}
else
{
Console.WriteLine("Invalid ID.");
}
}
}
运行效果

浙公网安备 33010602011771号