zoukankan      html  css  js  c++  java
  • WPF中使用ItemsControl嵌套绑定,在ItemsControl中嵌套一个ItemsControl,然后使用绑定

    最需要注意的一点是,绑定一定要使用属性,因为属性提供{set;get;}方法。

    XAML中的定义:

    注意:需要在第二层ItemsControl的ItemsSource绑定的内容

    <Window x:Class="Binding_Demo_01.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="MainWindow" Height="350" Width="525">
        <Grid>
            <ItemsControl x:Name="list1">
                <ItemsControl.ItemsPanel>
                    <ItemsPanelTemplate>
                        <StackPanel Orientation="Horizontal" Margin="10" VerticalAlignment="Center" HorizontalAlignment="Center"/>
                    </ItemsPanelTemplate>
                </ItemsControl.ItemsPanel>
                <ItemsControl.ItemTemplate>
                    <DataTemplate>
                        <ItemsControl ItemsSource="{Binding CurrPerson}" MouseDoubleClick="ItemsControl_MouseDoubleClick">
                            <ItemsControl.ItemsPanel>
                                <ItemsPanelTemplate>
                                    <StackPanel Orientation="Horizontal" Margin="10" VerticalAlignment="Center" HorizontalAlignment="Center"/>
                                </ItemsPanelTemplate>
                            </ItemsControl.ItemsPanel>
                            <ItemsControl.ItemTemplate>
                                <DataTemplate>
                                    <StackPanel Orientation="Vertical" VerticalAlignment="Center" HorizontalAlignment="Center">
                                        <Image Source="{Binding Image}" Stretch="UniformToFill" Height="400" Width="230" Margin="4"/>
                                        <TextBlock Text="{Binding Name}" Margin="4"/>
                                    </StackPanel>
                                </DataTemplate>
                             </ItemsControl.ItemTemplate>
                        </ItemsControl>
                    </DataTemplate>
                </ItemsControl.ItemTemplate>
            </ItemsControl>
        </Grid>
    </Window>

    CS文件的内容:

    public partial class MainWindow : Window
        {
            public MainWindow()
            {
                InitializeComponent();
    
                ObservableCollection<Persons> persons = new ObservableCollection<Persons>
                {
                    new Persons
                    {
                        CurrPerson = new List<Person>
                        {
                            new Person{Name="Chrysanthemum", Age=21, Email="chrysanthemum@gmail.com", Image="Chrysanthemum.jpg"},
                            new Person{Name="Desert", Age=23, Email="Desert@gmail.com", Image="Desert.jpg"}
                        }
                    },
    
                    new Persons
                    {
                        CurrPerson = new List<Person>
                        {
                            new Person{Name="Jellyfish", Age=32, Email="Jellyfish@gmail.com", Image="Jellyfish.jpg"},
                            new Person{Name="Hydrangeas", Age=23, Email="Hydrangeas@gmail.com", Image="Hydrangeas.jpg"}
                            }
                    }
                };
    
                list1.ItemsSource = persons;
            }
    
            private void ItemsControl_MouseDoubleClick(object sender, MouseButtonEventArgs e)
            {
    
            }
        }

    第三部分:

    Person类的定义

    class Person
    {
        public string Name { get; set; }
        public int Age { set; get; }
        public string Image { set; get; }
        public string Email { set; get; }
    }
    
    class Persons
    {
        public List<Person> CurrPerson { set; get; }
    }

    以上,

  • 相关阅读:
    E3-1230和E3-1230 V2有多神?
    自己制作 SPx N合1 自动安装盘(x86)
    ARP防火墙绑定网关MAC地址预防ARP攻击和P2P终结者
    完全备份、差异备份和增量备份的权威解释!!!
    Win7 SP1语言包微软官方下载地址及使用方法 2
    Windows 7 不同安装模式简要区别(图解)
    Windows PE3.0制作方法(从Win7中提取制作)
    摄影初学者挑选相机的常见问题 FAQ
    提升域用户帐户在本地计算机上的权限
    Oracle重置序列
  • 原文地址:https://www.cnblogs.com/leelike/p/2683748.html
Copyright © 2011-2022 走看看