WPF List View 用法

效果:


XAML:

<ListView Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="3" Grid.RowSpan="4" Margin="10">
                        <ListView.View>
                            <GridView>
                                <GridViewColumn Header="序号" Width="40" />
                                <GridViewColumn Header="动作" Width="100"/>
                                <GridViewColumn Header="轴" Width="100" />
                                <GridViewColumn Header="坐标"  Width="200" />

                            </GridView>
                        </ListView.View>
                    </ListView>

如何添加一行数据:

 假设我们的Listview控件名称是lvActionEditList

先定义一个结构体

struct mhAction
        {
            private string num;
            private string action;
            private string axis;
            private string pos;
            private string value;

            public mhAction(string v1, string v2, string v3, string v4, string v5) : this()
            {
                this.num = v1;
                this.action = v2;
                this.axis = v3;
                this.pos = v4;
                this.value = v5;
            }
        }

添加一条数据到ListView

 lvActionEditList.Items.Add(new mhAction("0","MOV","8,9,10,11","500,450,500,500","0"));

会显示成这样是因为尚未将数据进行绑定


扫描二维码关注公众号,回复: 2797907 查看本文章

回到XAML编辑界面,根据结构体名称,绑定数据:

<ListView x:Name="lvActionEditList" Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="3" Grid.RowSpan="4" Margin="10">
                        <ListView.View>
                            <GridView>
                                <GridViewColumn Header="序号" Width="40" DisplayMemberBinding="{Binding num}"/>
                                <GridViewColumn Header="动作" Width="100" DisplayMemberBinding="{Binding action}"/>
                                <GridViewColumn Header="轴" Width="100" DisplayMemberBinding="{Binding axis}"/>
                                <GridViewColumn Header="坐标"  Width="200" DisplayMemberBinding="{Binding pos}"/>
                                <GridViewColumn Header="参数"  Width="100" DisplayMemberBinding="{Binding value}"/>

                            </GridView>
                        </ListView.View>
                    </ListView>

显示出来是空白的,因为我们必须要手动重写结构体声明的部分,加上{get;set;},还需要把结构体这边的私有改为公有

struct mhAction
        {
            public string num { get; set; }
            public string action { get; set; }
            public string axis { get; set; }
            public string pos { get; set; }
            public string value { get; set; }

            public mhAction(string v1, string v2, string v3, string v4, string v5) : this()
            {
                this.num = v1;
                this.action = v2;
                this.axis = v3;
                this.pos = v4;
                this.value = v5;
            }
        }


如果要居中显示数据,在XAML文件添加自定义风格的描述

 <Window.Resources>
        <Style x:Key="ListViewItemStyle" TargetType="{x:Type ListViewItem}">
            <Setter Property="HorizontalContentAlignment" Value="Center"></Setter>
        </Style>
    </Window.Resources>

应用在ListView上面,修改ListView描述

 <ListView x:Name="lvActionEditList" Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="3" Grid.RowSpan="4" Margin="10" ItemContainerStyle="{StaticResource ResourceKey=ListViewItemStyle}">

猜你喜欢

转载自blog.csdn.net/u012388993/article/details/80980288