繁体   English   中英

如何在WPF中绑定listView的每个单元格

[英]How can I bind each cell of a listView in WPF

我有3行2列的listView。 我想将每个单元格绑定到类似{int A; int B; int C; int D; int E; int F;}

所以我的桌子看起来像

A B
C D
E F

而且将不再有任何行。

这就是我写的 而且我的数据模型不合适。 如何绑定每个单元格而不是每个列?

        <ListView.View>
            <GridView>
                <GridViewColumn Width="175" DisplayMemberBinding="{Binding A}">
                </GridViewColumn>
                <GridViewColumn Width="145" DisplayMemberBinding="{Binding B}">
                </GridViewColumn>
            </GridView>
        </ListView.View>
    </ListView>

据我所知,每一行都是一个类的实例,因此您不能将数据从一个实例绑定到不同的行。 但是,如果您要使用静态的行数来创建列表视图,则可以执行类似的操作。

private ObservableCollection<SimpleClass> _simpleCollection;
        public ObservableCollection<SimpleClass> SimpleCollection
        {
            get { return _simpleCollection ?? (_simpleCollection = new ObservableCollection<SimpleClass>()
            {
                new SimpleClass
                {
                    A = "1", B = "2"
                },
                new SimpleClass
                {
                    C = "3", D = "4"
                },
                new SimpleClass
                {
                    E = "5", F = "6"
                }
            }); }
            set
            {
                _simpleCollection = value;
            }
        }
    public class SimpleClass
    {
        public string A { get; set; }
        public string B { get; set; }
        public string C { get; set; }
        public string D { get; set; }
        public string E { get; set; }
        public string F { get; set; }
    }

在您看来:

<ListView ItemsSource="{Binding SimpleCollection}">
        <ListView.View>
            <GridView>
                <GridViewColumn Header="First column">
                    <GridViewColumn.CellTemplate>
                        <DataTemplate>
                            <StackPanel Orientation="Horizontal">
                                <TextBlock Text="{Binding A}"></TextBlock>
                                <TextBlock Text="{Binding C}"></TextBlock>
                                <TextBlock Text="{Binding E}"></TextBlock>
                            </StackPanel>
                        </DataTemplate>
                    </GridViewColumn.CellTemplate>
                </GridViewColumn>
                <GridViewColumn Header="Second column">
                    <GridViewColumn.CellTemplate>
                        <DataTemplate>
                            <StackPanel Orientation="Horizontal">
                                <TextBlock Text="{Binding B}"></TextBlock>
                                <TextBlock Text="{Binding D}"></TextBlock>
                                <TextBlock Text="{Binding F}"></TextBlock>
                            </StackPanel>
                        </DataTemplate>
                    </GridViewColumn.CellTemplate>
                </GridViewColumn>
            </GridView>
        </ListView.View>
    </ListView>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM