WPF的listview如何获取指定项的单元格
xaml的代码
我该如何获得Checkbox的单元格,我想在初始化时让前三个,或者指定的三个item的Checkbox的isenabled变成false
百度了好久找不到资料啊,找到个类似的用
<DataTemplate x:Key="isAuditeCheckDt">
<CheckBox x:Name="isAuditeCheck" IsChecked="{Binding isCheck}" Content="{Binding isCheck}" ></CheckBox>
</DataTemplate>
<ListView.View>
<GridView>
<GridViewColumn DisplayMemberBinding="{Binding Path=userName}" Header="用户名"
Width="100"/>
<GridViewColumn DisplayMemberBinding="{Binding Path=type}" Header="类型"
Width="150"/>
<GridViewColumn CellTemplate="{StaticResource isAuditeCheckDt}" Header="是否审计"
Width="108"/>
</GridView>
</ListView.View>我该如何获得Checkbox的单元格,我想在初始化时让前三个,或者指定的三个item的Checkbox的isenabled变成false
百度了好久找不到资料啊,找到个类似的用
private UIElement GetListViewCellControl(int rowIndex, int cellIndex)
{
// rowIndex and cellIndex base is 0.
// First Get ListViewItem
UIElement u = listView.ItemContainerGenerator.ContainerFromIndex(rowIndex) as UIElement;
if (u == null) return null;
// Seartch Unit In ListViewItem
while ((u = (VisualTreeHelper.GetChild(u, 0) as UIElement)) != null)
{
if (u is GridViewRowPresenter)
{
return VisualTreeHelper.GetChild(VisualTreeHelper.GetChild(u, cellIndex), 0) as UIElement;
}
}
return u;
}这个函数,但调试了一下发现没有获取到。类似的还有
foreach (users user in listView.Items)
{
ListViewItem lvi = this.listView.ItemContainerGenerator.ContainerFromItem(user) as ListViewItem;
CheckBox cb = FindVisualChild<CheckBox>(lvi);
cb.IsEnabled = false;
}
private ChildType FindVisualChild<ChildType>(DependencyObject obj) where ChildType : DependencyObject
{
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(obj); i++)
{
DependencyObject child = VisualTreeHelper.GetChild(obj, i);
if (child != null && child is ChildType)
{
return child as ChildType;
}
else
{
ChildType childOfChildren = FindVisualChild<ChildType>(child);
if (childOfChildren != null)
{
return childOfChildren;
}
}
}
return null;
}
但是都不行啊!!!都编译通过但是获取不到checkbox啊!!!为什么,求大神解答
...全文
相关推荐
WPF 控件.pdf
WPF 控件编程教程 PDF 版
WPF ListView 控件高级功能实战
在WPF(Windows Presentation Foundation)应用程序中,ListView控件是一个非常重要的UI元素,它能够以列表的形式展示数据集合,实现数据的有序显示和基础交互。它不仅支持简单的文本列表,还能通过模板展示复杂的数据项,如图形、图标或内嵌的子列表。有时候,标准的排序方式无法满足特定需求。这时可以使用接口来自定义排序逻辑。允许开发者将数据源中的值转换为一个可以排序的值。以下是实现自定义排序的步骤:实现接口,并定义转换逻辑。
WPF ListView 漂亮样式
WPF ListView 漂亮样式,自己还可以根据自己的需求进行样式修改,表头、列表都可以根据注释进行拓展,很实用
WPF ListView可以执行-排序,筛选,总计,单元格焦点,编辑等
增强的WPF ListView几乎是一个DataGrid
WPF中ListView添加CheckBox列
WPF中ListView添加CheckBox列


