首页 > 其他分享 >ListBox横向排布Item

ListBox横向排布Item

时间:2024-07-23 13:53:47浏览次数:15  
标签:get Windows System new Item 排布 using ListBox public


<Window x:Class="TwoColumnListBox.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:TwoColumnListBox"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <Window.Resources>
        <GridView x:Key="GridView">
            <GridView.Columns>
                <GridViewColumn Header="Name" DisplayMemberBinding="{Binding Path=ModelName}"/>
                <GridViewColumn Header="Model" DisplayMemberBinding="{Binding Path=ModelNumber}"/>
                <GridViewColumn Header="Price" DisplayMemberBinding="{Binding Path=UnitCost}"/>
            </GridView.Columns>
        </GridView>
        <local:TileView x:Key="ImageView">
            <local:TileView.ItemTemplate>
                <DataTemplate>
                    <StackPanel Width="150" VerticalAlignment="Top">
                        <TextBlock Text="{Binding Path=MockImageStr}"/>
                    </StackPanel>
                </DataTemplate>
            </local:TileView.ItemTemplate>
        </local:TileView>
    </Window.Resources>
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition/>
            <RowDefinition/>
            <RowDefinition Height="30"/>
        </Grid.RowDefinitions>
        <ListView Grid.Row="0" Name="lstProducts">
            <ListView.View>
                <local:TileView/>
            </ListView.View>
        </ListView>
        <ListBox Grid.Row="1" Name="lstProducts2">
            <ListBox.ItemsPanel>
                <ItemsPanelTemplate>
                    <WrapPanel/>
                </ItemsPanelTemplate>
            </ListBox.ItemsPanel>
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding Path=MockImageStr}"/>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>
        <ComboBox x:Name="lstCombox" Grid.Row="2" SelectionChanged="ComboBox_SelectionChanged">
            <ComboBoxItem Content="GridView"/>
            <ComboBoxItem Content="ImageView"/>
        </ComboBox>
    </Grid>
</Window>

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 TwoColumnListBox
{
    public class TileView : ViewBase
    {
        DataTemplate _itemTemplate;
        public DataTemplate ItemTemplate
        {
            get
            {
                return _itemTemplate;
            }
            set
            {
                _itemTemplate = value;
            }
        }
        protected override object DefaultStyleKey
        {
            get
            {
                return new ComponentResourceKey(GetType(),"TileView");
            }
        }
        protected override object ItemContainerDefaultStyleKey
        {
            get
            {
                return new ComponentResourceKey(GetType(), "TileViewItem");
            }
        }
    }
    public class ModelInfo
    {
        public string ModelName
        {
            get;set;
        }
        public int ModelNumber
        {
            get;set;
        }
        public double UnitCost
        {
            get;set;
        }
        public string MockImageStr
        {
            get;set;
        }
    }
    /// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            
            InitializeComponent();
            var a = new List<ModelInfo>
            {
                new ModelInfo{ModelName="iPhone 6",ModelNumber=6,UnitCost=549.00,MockImageStr="Iphone6" },
                new ModelInfo{ModelName="iPhone 5",ModelNumber=6,UnitCost=549.00,MockImageStr="Iphone5" },
                new ModelInfo{ModelName="iPad",ModelNumber=6,UnitCost=549.00,MockImageStr="IPad" },

            };
            lstProducts.ItemsSource = a;
            lstProducts2.ItemsSource = a;
        }

        private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            ComboBoxItem selec = (ComboBoxItem)lstCombox.SelectedItem;
            lstProducts.View = (ViewBase)this.FindResource(selec.Content);
            
        }
    }
}



标签:get,Windows,System,new,Item,排布,using,ListBox,public
From: https://www.cnblogs.com/johnyang/p/18318198

相关文章

  • 使用nginx proxy_pass从s3存储桶中读取sitemap.xml文件
    使用nginxproxy_pass从s3存储桶中读取sitemap.xml文件 nginx是一款高性能的开源Web服务器软件,也可以作为反向代理服务器使用。proxy_pass是nginx的一个指令,用于将客户端的请求转发到其他服务器上。在使用nginx的proxy_pass指令从S3存储桶中读取sitemap.xml文件时,可以按......
  • 给QTreeWidgetItem设置第二个图标
    之前的项目中需要在QTreeWidgetItem原本图标的前面额外设置一个状态图标。基本思路是在QStyledItemDelegate::paint()中压缩text区域,扩大icon区域,然后重新绘制图标以下是实现方式/*!其他图标来自宏ITEMVIEW_OTHER_ICONROLE(Qt::UserRole+11)仅支持第二图标,如果......
  • PowerShell 命令来操作 Windows 注册表 Get-ItemProperty 命令可以获取指定注册表路径
    PowerShell提供了一些命令和方法来操作Windows注册表。以下是一些常用的PowerShell命令和示例:1.获取注册表项的值使用Get-ItemProperty命令可以获取指定注册表路径下的键值信息。powershellCopyCode#获取注册表项的值Get-ItemProperty-Path"HKCU:\Software\Micro......
  • Pandas 哈希表给出 key error:0 和 get_item
    我试图获取两个pandas数据表的相同元素,对数据进行索引并将其合并。我将它用于大量数据(数百万)。第一个表(df)是恒定的,第二个表(d2)在每个循环中都在变化,新元素将与第一个表合并。这是我的此过程的代码:df=pd.read_csv("inputfile.csv",header=None)d1=pd.DataFram......
  • WPF ListBox's ItemsSource depend on another's ListBoxItem and fully implemented
    //xaml<Grid><Grid.ColumnDefinitions><ColumnDefinition/><ColumnDefinition/><ColumnDefinition/></Grid.ColumnDefinitions><ListBoxGrid.Column="0"ItemsSource=&......
  • Windows图形界面(GUI)-DLG-C/C++ - 列表框(ListBox)
    公开视频-> 链接点击跳转公开课程博客首页-> ​​​​​​链接点击跳转博客主页列表框(ListBox)控件类型单选列表框(Single-selectionListBox):用户一次只能选择一个列表项。它通常用于当选择范围被限定到一个单一的选项时。多选列表框(Multi-selectionListBox):用户可以同......
  • WPF ListBox's itemsource depend on another listbox's selecteditem
    //xaml<ListBoxGrid.Row="1"Grid.Column="0"ItemsSource="{Binding}"x:Name="countryLbx"DisplayMemberPath="CountryName"/><ListBoxGrid.Row="1"Grid.Column="1&......
  • [FlareOn4]IgniteMe
    无壳,32位先进入ida,可以看到start函数,重要的就是4010F0()和if判断里的401050()先进入4010F0其中的一个函数,表示的是获取字符串长度(遇到null字符就返回i)后面就是将字符写入byte_403078这个数组接下来看401050(),可以看到获取长度后,执行了一个401000,然后让数组从末尾开始和v4......
  • WPF ComboBox数据绑定:初始化动态加载ItemsSource后首次赋值Text不显示问题解决
    原来:<ComboBoxText="{BindingItem}"ItemsSource="{BindingItemLists}"></ComboBox>privatevoidParas_Init(){ItemLists=newObservableCollection<string>();ItemLists.Add("111......
  • CSS【详解】定位 position (静态定位 static -- 文档流排布 、相对定位 relative、绝对
    静态定位position:static【默认】此时,元素按文档流的方式排布:以左上角为起点内联元素从左到右依次排布,当一行排不下时,自动换到下一行继续从左到右排布块级元素独占一行此时,top、left、right、bottom、z-index等样式无效。相对定位position:relative相对......