美文网首页
WPF之数据模板(DataTemplate)

WPF之数据模板(DataTemplate)

作者: 小羊爱学习 | 来源:发表于2024-07-28 11:00 被阅读0次

简介

和控件模板一样,数据模板(DataTemplate)就是用来自定义数据的表现形式,对itemscontrol类的控件十分的有用,可以改变列表项的外观和,更有表现能力

使用

本示例一样采用两种方式演示,第一种是放在资源文件,第二种则直接使用
xaml部分

    <Window.Resources>
        <DataTemplate x:Key="XTree">
            <StackPanel Orientation="Horizontal">
                <TextBlock Text="{Binding Name}"></TextBlock>
                <TextBlock Text="---"></TextBlock>
                <TextBlock Text="{Binding Age}"></TextBlock>
            </StackPanel>
        </DataTemplate>
    </Window.Resources>


    <Grid>
        <ComboBox x:Name="cbo" Width="100" Height="20">
            <ComboBox.ItemTemplate>
                <DataTemplate>
                    <StackPanel Orientation="Horizontal">
                        <TextBlock Text="{Binding Name}"></TextBlock>
                        <TextBlock Text="---"></TextBlock>
                        <TextBlock Text="{Binding Age}"></TextBlock>
                    </StackPanel>
                </DataTemplate>
            </ComboBox.ItemTemplate>
        </ComboBox>

        <ComboBox x:Name="cbo2" Width="100" Height="20" HorizontalAlignment="Left" ItemTemplate="{StaticResource XTree}">

        </ComboBox>
    </Grid>

cs部分

namespace WpfAppLearn
{
    /// <summary>
    /// DataTemplateWin.xaml 的交互逻辑
    /// </summary>
    public partial class DataTemplateWin : Window
    {
        public DataTemplateWin()
        {
            InitializeComponent();
            List<Student> list = new List<Student>();
            for (int i = 0; i < 10; i++)
            {
                list.Add(new Student() { Name = $"NAME{i}", Age = i });
            }
            cbo.ItemsSource = list;


            List<Student> list2 = new List<Student>();
            for (int i = 0; i < 10; i++)
            {
                list2.Add(new Student() { Name = $"名字{i}", Age = i });
            }
            cbo2.ItemsSource = list2;
        }
    }
    public class Student()
    {
        public string? Name { get; set; }
        public int? Age { get; set; }
    }
}

最终表现分别问:


image.png
image.png

相关文章

网友评论

      本文标题:WPF之数据模板(DataTemplate)

      本文链接:https://www.haomeiwen.com/subject/mozbhjtx.html