110,533
社区成员
发帖
与我相关
我的任务
分享
<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>
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啊!!!为什么,求大神解答 private void isAuditeCheck_Loaded(object sender, RoutedEventArgs e)
{
CheckBox tb = e.OriginalSource as CheckBox;
ContentPresenter cp = tb.TemplatedParent as ContentPresenter;
users user = cp.Content as users;
if (user.userName == "admin" || user.userName == "auditor" || user.userName == "security") //如果是这三个用户不允许修改isCheck
{
ListViewItem lvi = this.listView.ItemContainerGenerator.ContainerFromItem(user) as ListViewItem;
CheckBox cb = FindVisualChild<CheckBox>(lvi);
cb.IsEnabled = false;
}
}
我已经会了,还是谢谢二楼