WPF listview 控件使用

无法选中在listview控件中的其他控件,如textbox,通过文档大纲也不能选中,是只能通过xaml编辑还是什么其他原因?还有一个问题是为什么我在GridView属性... 无法选中在listview控件中的其他控件,如textbox,通过文档大纲也不能选中,是只能通过xaml编辑还是什么其他原因?
还有一个问题是为什么我在GridView属性里找不到GridViewColumn.CellTemplate DataTemplate这些属性???
展开
 我来答
N_0_1
高粉答主

推荐于2016-10-04 · 关注我不会让你失望
知道大有可为答主
回答量:8628
采纳率:47%
帮助的人:818万
展开全部
一、实现排序功能
需求是这样的:假如我们把学生的分数放入ListView,当我们单机ListView头部时候实现对按分数的排序,更改Xaml如下:
View Code
更改地方也不多,Student类添加Score属性,DataTemplate中增加Score的列模板,数据源添加一些默认的分数。
数据有了,下面就是排序功能了,首先写一个排序的函数:StuSort(string sortBy, ListSortDirection direction);排序功能的实现是通过CollectionViewSource类实现的,这个类我就不介绍了,可以对数据源进行排序分组什么的,详情参考MSDN 。代码如下:

private void StuSort(ListView lv, string sortBy, ListSortDirection direction)
{

ICollectionView dataView =CollectionViewSource.GetDefaultView(lv.ItemsSource);//获取数据源视图
dataView.SortDescriptions.Clear();//清空默认排序描述
SortDescription sd = new SortDescription(sortBy, direction);
dataView.SortDescriptions.Add(sd);//加入新的排序描述
dataView.Refresh();//刷新视图
}

函数写好了,介绍下此函数的三个参数,第一个毫无疑问是数据的承载着ListView了,第二个比较重要是要通过那个字段排序,本例子是通过Student的Score来排序,所以就是“Score”,第三个参数是排序方向,升序或者降序了。然后当我们点击ListView的Header的时候触发此函数。Xaml页面中的ListView中监控GridViewColumnHeaderClick的路由事件,
<ListView x:Name="ListViewStudent"
ItemsSource="{StaticResource stuList}"
GridViewColumnHeader.Click="GridViewColumnHeaderClickedHandler"
>
后台实现GridViewColumnHeaderClickedHandler事件,代码如下:
private void GridViewColumnHeaderClickedHandler(object sender, RoutedEventArgs e)
{
GridViewColumnHeader gch=e.OriginalSource as GridViewColumnHeader;
StuSort(this.ListViewStudent, "Score", ListSortDirection.Ascending);
}

运行,单机分数,实现排序功能。
Mickal小米
2013-05-02 · TA获得超过3666个赞
知道大有可为答主
回答量:1542
采纳率:100%
帮助的人:1767万
展开全部
可以有这些属性啊。你是如下面这样使用的吗?
<GridViewColumn DisplayMemberBinding="{Binding StuName}" Header="Name" Width="120"/>
<GridViewColumn Header="Name2">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding StuName}" Width="120" TextAlignment="Center"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
追问
这个代码不是我写的,是研究别人的程序,就是在看这个UI的时候发现listview里面的控件选不中,也没在属性列表里看到这些子属性,像datatemplate,在xaml里面却有。你知道为什么吗?还有就是为什么一列有3个TextBlock,而xaml就只有一个  
追答
不清楚= =不好意思帮不了你。我一般看别人代码只看算法逻辑。。。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式