当前位置: 首页 > news >正文

C# Avalonia 19- DataBinding- CustomListViewTest

CustomListViewTest.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="375" Width="525"xmlns:local="using:AvaloniaUI.Demos.Book._19.StoreDatabase"xmlns:main="using:AvaloniaUI"x:DataType="main:CustomListViewTest"x:Class="AvaloniaUI.CustomListViewTest"Title="CustomListViewTest"><Window.Resources><local:ImagePathToBitmapConverter x:Key="ImagePathConverter" /></Window.Resources><Grid Margin="5" RowDefinitions="*,auto"><!-- 表格视图:DataGrid --><DataGrid Name="gridView"HeadersVisibility="None"ItemsSource="{Binding Products}"AutoGenerateColumns="False"IsReadOnly="False"><DataGrid.Columns><DataGridTextColumn Header="Name"Binding="{Binding ModelName}"/><DataGridTextColumn Header="Model"Binding="{Binding ModelNumber}" /><DataGridTextColumn Header="Price" IsReadOnly="True"Binding="{Binding UnitCost, StringFormat='{}{0:C}'}" /></DataGrid.Columns></DataGrid><!-- 图片缩略图视图 --><ListBox Name="imageView"Grid.Row="0"ItemsSource="{Binding Products}"IsVisible="False"><ListBox.ItemsPanel><ItemsPanelTemplate><WrapPanel /></ItemsPanelTemplate></ListBox.ItemsPanel><ListBox.ItemTemplate><DataTemplate><StackPanel Width="150" VerticalAlignment="Top"><Image Source="{Binding ProductImagePath, Converter={StaticResource ImagePathConverter}}" /><TextBlock Text="{Binding ModelName}"TextWrapping="Wrap"HorizontalAlignment="Center" /></StackPanel></DataTemplate></ListBox.ItemTemplate></ListBox><!-- 图片 + 详情视图 --><ListBox Name="imageDetailView"Grid.Row="0"ItemsSource="{Binding Products}"IsVisible="False"><ListBox.ItemTemplate><DataTemplate><Grid ColumnDefinitions="auto,2*"><Image Margin="5"Width="100"Source="{Binding ProductImagePath, Converter={StaticResource ImagePathConverter}}" /><StackPanel Grid.Column="1"VerticalAlignment="Center"><TextBlock FontWeight="Bold"Text="{Binding ModelName}" /><TextBlock Text="{Binding ModelNumber}" /><TextBlock Text="{Binding UnitCost, StringFormat='{}{0:C}'}" /></StackPanel></Grid></DataTemplate></ListBox.ItemTemplate></ListBox><!-- 视图切换 --><Grid Grid.Row="1"Margin="5"ColumnDefinitions="auto,*"><TextBlock Margin="5"VerticalAlignment="Center"Text="Choose your view:" /><ComboBox Name="lstView"Grid.Column="1"Margin="5"Width="150"HorizontalAlignment="Left"SelectionChanged="lstView_SelectionChanged"><ComboBoxItem Content="GridView" /><ComboBoxItem Content="ImageView" /><ComboBoxItem Content="ImageDetailView" /></ComboBox></Grid></Grid>
</Window>

CustomListViewTest.axaml.cs代码

using Avalonia;
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
using AvaloniaUI.Demos.Book._19.StoreDatabase;
using System.Collections.ObjectModel;namespace AvaloniaUI;public partial class CustomListViewTest : Window
{private StoreDb1 db = new StoreDb1();public ObservableCollection<Product> Products { get; set; }public CustomListViewTest(){InitializeComponent();Products = db.GetProducts();this.DataContext = this;// 默认使用表格视图lstView.SelectedIndex = 0;UpdateView("GridView");}private void lstView_SelectionChanged(object? sender, SelectionChangedEventArgs e){var selected = (lstView.SelectedItem as ComboBoxItem)?.Content as string;UpdateView(selected);}private void UpdateView(string? name){gridView.IsVisible = name == "GridView";imageView.IsVisible = name == "ImageView";imageDetailView.IsVisible = name == "ImageDetailView";}
}

运行效果

image

 

http://www.jsqmd.com/news/381587/

相关文章:

  • 基于python-django-flask的智能ai眼科患者随访管理系统
  • 50天50个小项目 (React19 + Tailwindcss V4) ✨ | TodoList(代办事项组件) - 教程
  • 高拍仪如何选择,福州捷宇科技专业支招 - 工业设备
  • MATLAB中LSSVM工具包及简单例程详解
  • 2026年北京英语四六级培训服务排名,哪家机构更靠谱 - 工业品网
  • 基于深度学习的安全帽检测系统演示与介绍(YOLOv12/v11/v8/v5模型+Django+web+训练代码+数据集)
  • 详细介绍:尺寸约束下商业卫星编码器系统的抗辐照MCU性能边界研究
  • 内容由 AI 生成你先在给我总结,在编译期确定偏移量的,不用在运行时动态查,反之,总结给我核心总结(按编译期/运行时偏移量划分)1. 编译期确定偏移量(无需运行时查表)当 B* pb 指向独立
  • 工业显示屏:显示屏的驱动与控制电路
  • 【UI自动化测试】2_web自动化测试 _Selenium环境搭建(重点)
  • 全网最全 8 个 AI论文平台测评:本科生毕业论文写作与格式规范必备工具推荐
  • 【UI自动化测试】1_web自动化测试 _测试工具选择
  • 剖析靠谱的加厚防尘袋厂家,天津金盛昱值得关注 - myqiye
  • 京津冀轮胎靠谱厂家总代理,适合不同商家合作模式的怎么选择 - 工业推荐榜
  • (2026最新)谷歌全球专利数据(Google Patents Publilic Data)
  • 深度测评 8个降AIGC工具:本科生降AI率必备指南
  • 探寻2026年别墅设计师便宜的公司,尚层装饰费用合理吗 - 工业设备
  • 多头对齐:视觉语言模型知识蒸馏新方法
  • 2026年乙炔压缩机厂推荐,高性价比的金鼎科技不容错过 - mypinpai
  • 2026年宁波智能工厂规划避坑指南:5家高性价比服务商实测推 - 精选优质企业推荐榜
  • 海淀原点社区、海淀卫星通信大厦、中关村壹号出租招商价格哪家性价比高 - 工业品网
  • 格式总出错?10个AI论文平台测评:本科生毕业论文与科研写作必备工具推荐
  • 2025年Q4季上海智能工厂规划TOP5权威推荐 - 精选优质企业推荐榜
  • 2026年好用的专利复审代理及小型专利许可代理机构大盘点 - myqiye
  • 讲讲适合老人吃的江湖菜怎么选,重庆李子坝梁山鸡是优选 - myqiye
  • 防尘袋精品定制费用多少,这些品牌厂家给你答案 - 工业推荐榜
  • 高中文言文翻译不再愁,2026年教辅精选推荐,分班卷/专项教辅/名著导读测试卷/期中自测卷/暑假练习册,教辅公司怎么选 - 品牌推荐师
  • 聊聊水性色浆生产厂口碑好的推荐与选购指南 - 工业品牌热点
  • 进程控制(四):自主Shell命令行解释器 - 实践
  • 等离子喷涂加工厂售后哪家好,江苏优质企业大揭秘 - 工业设备