当前位置:  开发笔记 > 编程语言 > 正文

WPF - ItemsControl - 如何找到ItemTemplate中的"CheckBox"项?

如何解决《WPF-ItemsControl-如何找到ItemTemplate中的"CheckBox"项?》经验,为你挑选了2个好方法。

我有以下(非常简单)ItemsControl:


    
        
            
        
    

在代码中,我想做以下事情:

foreach (var dahCurrentItem in BlahList.Items)
{
    var ItemCheckBox = BlahList.GimmeMyControl(dahCurrentItem, "MyCheckBox")

    // I'm going to do something with the check box here...
}

我怎么做?



1> Timothy Khou..:

好吧,肯特得到了信誉,但它只是大多数是正确的:)

// This part was good:
var container = _itemsControl.ItemContainerGenerator.ContainerFromItem(dahCurrentItem) as FrameworkElement;

但是......第二部分会返回null,所以它必须如下:

var checkBox = _itemsControl.ItemTemplate.FindName("MyCheckBox", container) as CheckBox;

他的代码看起来应该有效,但对于我的情况,我不得不这样做.



2> Kent Boogaar..:

首先,如果有任何方法可以避免它,请不要.将各种属性绑定CheckBox到视图模型而不是尝试手动拉出它们要清晰得多.

也就是说,如果你需要去你的CheckBox,你可以使用这样的代码:

var container = _itemsControl.ItemContainerGenerator.ContainerFromItem(dahCurrentItem) as FrameworkElement;
var checkBox = container.FindName("MyCheckBox") as CheckBox;


好的,我不得不拿走"已回答"的复选框...因为我只是"空".我想这非常接近,但必须有一些小的遗漏.
推荐阅读
重庆制造漫画社
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有