[英]How can I bind each cell of a listView in WPF
I have a listView of 3 rows by 2 columns. 我有3行2列的listView。 I want to bind each cell to a class like {int A; 我想将每个单元格绑定到类似{int A; int B; int B; int C; int C; int D; int D; int E; int E; int F;} int F;}
So my table will look like 所以我的桌子看起来像
A B
C D
E F
And there won't be any more rows. 而且将不再有任何行。
This is what I wrote. 这就是我写的 And my data model won't fit. 而且我的数据模型不合适。 How can I bind each cell instead of each column? 如何绑定每个单元格而不是每个列?
<ListView.View>
<GridView>
<GridViewColumn Width="175" DisplayMemberBinding="{Binding A}">
</GridViewColumn>
<GridViewColumn Width="145" DisplayMemberBinding="{Binding B}">
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
As far as i know, each row is an instance of a class, so you can't bind data from one instance to different rows. 据我所知,每一行都是一个类的实例,因此您不能将数据从一个实例绑定到不同的行。 But if you want to make a listview with a static number of rows you can do smth like that. 但是,如果您要使用静态的行数来创建列表视图,则可以执行类似的操作。
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; }
}
And in your View: 在您看来:
<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.