前言:
WPf 的listView简单的绑定数据之后,没办法访问内部的行列item属性,思考:
怎样才能将listView中的某一行中的某一列进行背景颜色的切换。
正常用法:
<ListView x:Name="listView1" ItemsSource="{Binding items}" Width="641" Margin="0,0,0,-5" ItemContainerStyle="{StaticResource ListViewItemStyle}">
<ListView.View>
<GridView>
<GridViewColumn Header=" 序号" Width="130" DisplayMemberBinding="{Binding number}">
</GridViewColumn>
<GridViewColumn Header=" 名称" Width="110" DisplayMemberBinding="{Binding name}">
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
如上代码所示,只需要将listView的itemssoure绑定好特定的数据,就可以进行简单的展示。
cs代码如下:
List<ListViewItem> ITEMS = new List<ListViewItem>();
// 资源绑定
listView1.ItemsSource = ITEMS;
其中:需要自己创建一个对应的类进行GridViewColumn数据对应
// 数据列表list
public class DataClass
{
public string number { get; set; }
public string name { get; set; }
}
直接使用,然后插入就好:
ListViewItem one_item = new ListViewItem();
one_item.Content = new DataClass()
{
number = "11",
name = "hello_world"
};
ITEMS.Add(one_item);
>>>>>>>>>>>>>>> 这时候就会引出前言的问题,我插入了数据之后,我该怎么对某一格的数据进行属性修改呢?
答:插入了之后,我暂时没有找到能修改特定格子属性的方法,但是我想到了另外一个方法;直接在插入数据的同属,将数据也进行绑定,这样就可以通过不同的判断条件进行不同属性的修改。
XAML代码:
<ListView x:Name="listView1" ItemsSource="{Binding items}" Width="641" Margin="0,0,0,-5" ItemContainerStyle="{StaticResource ListViewItemStyle}">
<ListView.View>
<GridView>
<GridViewColumn Header=" 序号" Width="130">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Width="110" TextAlignment="Center" Background="{Binding numberBackgroud}" Text="{Binding number}"></TextBlock>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Header=" 名称" Width="110">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Width="110" TextAlignment="Center" Background="{Binding nameBackgroud}" Text="{Binding name}"></TextBlock>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
cs代码:
public class DataClass
{
public string number { get; set; }
public string numberBackground { get; set; }
public string name { get; set; }
public string nameBackground { get; set; }
}
List<ListViewItem> ITEMS = new List<ListViewItem>();
// 资源绑定
listView1.ItemsSource = ITEMS;
ListViewItem one_item = new ListViewItem();
one_item.Content = new DataClass()
{
number = "11",
name = "hello_world",
numberBackground = "red",
nameBackground = "Yellow",
};
ITEMS.Add(one_item);
完成。