zoukankan      html  css  js  c++  java
  • wpf listbox分组显示

    1.Xaml部分

    <Grid>
            <ListBox Name="lbMain" ItemsSource="{Binding CollectionModelFile}">
                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <StackPanel Height="30" Orientation="Horizontal">
                            <Label Width="20"/>
                            <CheckBox IsChecked="{Binding IsChecked}" VerticalAlignment="Center"/>
                            <TextBlock Text="{Binding FilterCond}" Margin="5 0 10 0" VerticalAlignment="Center"/>
                            <TextBox Text="{Binding FilterValue}" Width="60" VerticalAlignment="Center"/>
                        </StackPanel>
                    </DataTemplate>
                </ListBox.ItemTemplate>
                <ListBox.GroupStyle>
                    <GroupStyle>
                        <GroupStyle.ContainerStyle>
                            <Style TargetType="{x:Type GroupItem}">
                                <Setter Property="Template">
                                    <Setter.Value>
                                        <ControlTemplate TargetType="{x:Type GroupItem}">
                                            <Expander  IsExpanded="True"
                                              ExpandDirection="Down" Header="{Binding ItemCount}">
                                                <!--<Expander.Header>
                                                    <StackPanel Orientation="Horizontal">
                                                        <CheckBox IsChecked="{Binding IsChecked}"/>
                                                        <TextBox Width="100" Text="{Binding ElementName=btn_1,Path=Content}"/>
                                                        <TextBox Width="100"   DataContext="{Binding ElementName=btn_1,Path=Content}"/>
                                                       
                                                        <TextBlock Text="{Binding Path=ItemCount, StringFormat=数量:{0}}"
                                                           VerticalAlignment="Center"
                                                           Margin="5,0,0,0" Width="50"/>
                                                    </StackPanel>
                                                </Expander.Header>-->
                                                <ItemsPresenter />
                                            </Expander>
                                        </ControlTemplate>
                                    </Setter.Value>
                                </Setter>
                            </Style>
                        </GroupStyle.ContainerStyle>
                    </GroupStyle>
                </ListBox.GroupStyle>
            </ListBox>
            <Button x:Name="btn_1" Content="123" Height="50" Width="50" VerticalAlignment="Top" Click="Button_Click" Margin="216,0,534,0"/>
        </Grid>
    

    2.后台部分

    using System;
    using System.Collections.Generic;
    using System.Collections.ObjectModel;
    using System.ComponentModel;
    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 WorkFlowControl
    {
        /// <summary>
        /// UserControl1.xaml 的交互逻辑
        /// </summary>
        public partial class UserControl1 : UserControl
        {
            public class ModelFile
            {
                public int Num { get; set; }
                public bool IsChecked { get; set; }
                public string FilterCond { get; set; }
                public double FilterValue { get; set; }
            }
            public ObservableCollection<ModelFile> CollectionModelFile = new ObservableCollection<ModelFile>();
    
            public UserControl1()
            {
                InitializeComponent();
                CollectionModelFile.Add(new ModelFile() { Num = 0 ,IsChecked=true,FilterCond="Width",FilterValue=512});
                CollectionModelFile.Add(new ModelFile() { Num = 0 ,IsChecked=true,FilterCond="Height",FilterValue=7});
                CollectionModelFile.Add(new ModelFile() { Num = 0 ,IsChecked=true,FilterCond="Length",FilterValue=3});
    
                CollectionModelFile.Add(new ModelFile() { Num = 1 ,IsChecked=true,FilterCond="Width",FilterValue=50});
                CollectionModelFile.Add(new ModelFile() { Num = 2 ,IsChecked=true,FilterCond="height",FilterValue=50});
    
    
    
    
                lbMain.ItemsSource = CollectionModelFile;
    
                ICollectionView cv = CollectionViewSource.GetDefaultView(lbMain.ItemsSource);
                cv.GroupDescriptions.Add(new PropertyGroupDescription("Num"));
            }
    
            private void Button_Click(object sender, RoutedEventArgs e)
            {
    
            }
        }
    }
    
    

    3.显示

  • 相关阅读:
    vs里替换的正则表达式引用
    javascript学习
    filter用法(使静态页面和js通过iis的asp.net过滤器)
    表格的交替选择行【jquery中siblings的用法】
    表格的cell固定宽度,当内容达到宽度时换行
    collection模块(具名元组、队列、有序字典、默认值字典)、time 模块、随机模块:random、os模块、sys模块、序列化模块
    继承的用法、属性的查找顺序、组合、新式类与经典类、菱形继承等
    多态、以及常用的关于类的方法(isinstance、issubclass、slots等)运算符重载的实现、上下文管理等
    封装、prorerty装饰器、python实现封装的原理等
    面向对象、类和对象、__dict__方法、__init__方法、对象绑定方法、类绑定方法、对象交互
  • 原文地址:https://www.cnblogs.com/sclu/p/13606140.html
Copyright © 2011-2022 走看看