首页 > 其他分享 >WPF ListBox ItemTemplate DataTemplate

WPF ListBox ItemTemplate DataTemplate

时间:2025-01-12 19:10:32浏览次数:1  
标签:ItemTemplate Windows System MainWindow using WPF bk ListBox public

<Window x:Class="WpfApp137.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        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"
        xmlns:local="clr-namespace:WpfApp137"
        WindowState="Maximized"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <Window.Resources>
        <Style TargetType="{x:Type TextBlock}" x:Key="tbkStyle">
            <Setter Property="FontSize" Value="30"/>
            <Setter Property="HorizontalAlignment" Value="Stretch"/>
            <Setter Property="VerticalAlignment" Value="Center"/>
            <Style.Triggers>
                <Trigger Property="IsMouseOver" Value="True">
                    <Setter Property="FontSize" Value="50"/>
                </Trigger>
            </Style.Triggers>
        </Style>
    </Window.Resources>
    <Grid>
        <ListBox x:Name="lbx" 
                 ItemsSource="{Binding BooksCollection,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}">
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <Grid Height="200">
                        <Grid.RowDefinitions>
                            <RowDefinition/>
                            <RowDefinition/>
                        </Grid.RowDefinitions>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition/>
                            <ColumnDefinition/>
                        </Grid.ColumnDefinitions>
                        <TextBlock Text="{Binding Id}" Grid.Row="0" Grid.Column="0" Style="{StaticResource tbkStyle}" />
                        <TextBlock Text="{Binding Name}" Grid.Row="0" Grid.Column="1" Style="{StaticResource tbkStyle}"/>
                        <TextBlock Text="{Binding ISBN}" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" Style="{StaticResource tbkStyle}"/>
                    </Grid>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>
    </Grid>
</Window>



//cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace WpfApp137
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            this.Loaded += MainWindow_Loaded;
        }

        private void MainWindow_Loaded(object sender, RoutedEventArgs e)
        {
            System.Timers.Timer tmr = new System.Timers.Timer();
            tmr.Elapsed += Tmr_Elapsed;
            tmr.Interval = 1000;
            tmr.Start();
        }

        int idx = 0;
        private void Tmr_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
        {
            Application.Current.Dispatcher.BeginInvoke(new Action(() => 
            {
                Book bk = new Book();
                bk.Id = ++idx;
                bk.ISBN = $"{idx}_{Guid.NewGuid().ToString("N")}";
                bk.Name = $"{idx}_Name";
                lbx.Items.Add(bk);
            }));            
        }
    }

    public class Book
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string ISBN { get; set; }
    }
    }

 

 

 

 

 

 

 

 

 

 

 

 

 

 

标签:ItemTemplate,Windows,System,MainWindow,using,WPF,bk,ListBox,public
From: https://www.cnblogs.com/Fred1987/p/18667177

相关文章

  • WPF ListBoxItem ControlTemplate
    <Windowx:Class="WpfApp136.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft......
  • wpf mvvm(prism)
     mainwindow.xml.cspublicpartialclassMainWindow:MetroWindow{privatereadonlyIRegionManagerregionManager;publicMainWindow(IRegionManagerregionManager){InitializeComponent();this.regionManager=regionMana......
  • wpf 打包成单文件
     FolderProfile.pubxml<Project><PropertyGroup><TargetFramework>net6.0-windows7.0</TargetFramework><PublishSingleFile>true</PublishSingleFile> <Configuration>Release</Configuration> <I......
  • WPF 怎么利用behavior优雅的给一个Datagrid添加一个全选的功能
    前言:我在迁移旧项目代码的时候发现别人写很多界面都涉及到一个DataGrid的全选,但是每个都写的很混乱,现在刚好空闲下来,写一个博客,给部分可能不太会写这个的同学讲一下,怎么实现全选功能,并且可以在任何项目里面复用这个功能。先准备一个Datagrid,我们给这个DataGrid取名为dg1。......
  • WPF刮刮乐
    WPF刮刮乐<Windowx:Class="WpfApp2.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.c......
  • Rubyer-WPF:打造优雅、精致的 WPF 用户界面
    在桌面应用开发领域,WPF(WindowsPresentationFoundation)凭借其强大的UI设计能力和丰富的功能,始终是开发者们青睐的工具之一。今天,我将为大家介绍一款专注于WPFUI设计的优秀项目——Rubyer-WPF,它将帮助开发者打造更加优雅、美观的用户界面。项目简介Rubyer-WPF 是由开发......
  • Rubyer-WPF:打造优雅、精致的 WPF 用户界面
    这篇文章可以通过一些结构性的调整和文字优化,使得内容更具吸引力和流畅感。以下是改进后的版本:Rubyer-WPF:打造优雅、精致的WPF用户界面在桌面应用开发领域,WPF(WindowsPresentationFoundation)凭借其强大的UI设计能力和丰富的功能,始终是开发者们青睐的工具之一。今天,我将为......
  • WPF页面中将一个控件的宽度绑定到其父级用户控件的实际宽度
    该实际场景比较常见于,当存在多个用户控件页面拼成一个窗体,因为实际控件对应窗体的宽度并不能确定,也不是那种能指定的宽度或者高度,比如窗体分导航区域和内容区域,左侧导航区域可以直接指定宽度,而右侧内容区域则是使用Auto或者*的宽度。在WPF中,尝试将一个控件的宽度绑定到其父级用户......
  • 深入探索 ScottPlot.WPF:在 Windows 桌面应用中绘制精美图表的利器
    一、ScottPlot.WPF简介ScottPlot.WPF是基于ScottPlot绘图库专门为WindowsPresentationFoundation(WPF)框架量身定制的强大绘图组件。它无缝集成到WPF应用程序中,为开发者提供了一种简洁、高效的方式来可视化数据,无论是科学研究中的实验数据展示、金融领域的行情走势......
  • C# WPF Material DesignThemes 5.0 命名规则改变后导致找不到资源
    MaterialDesignInXAML库从5.0.0版本开始的命名规则变化,使用新的ResourceDictionary时遇到的themes/materialdesigntheme.defaults.xaml找不到.  原本在App.xaml中定义如下:<ResourceDictionary.MergedDictionaries><ResourceDictionarySource="pack://applicatio......