WPF – ItemsControl – 如何找到ItemTemplate中的“CheckBox”项目?

我有以下(很简单)ItemsControl:

<ItemsControl Name="BlahList" ItemsSource="{Binding Blah}">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <CheckBox Name="MyCheckBox" Content="{Binding Text}" />
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

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

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

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

我怎么做?

首先,不要以任何方式避免。将CheckBox的各种属性绑定到视图模型中而不是手动将其拉出来更为干净。

也就是说,如果您需要访问CheckBox,您应该可以使用如下代码:

var container = _itemsControl.ItemContainerGenerator.ContainerFromItem(dahCurrentItem) as FrameworkElement;
var checkBox = container.FindName("MyCheckBox") as CheckBox;
http://stackoverflow.com/questions/603203/wpf-itemscontrol-how-do-i-get-find-my-checkbox-item-that-is-in-the-itemtem

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:WPF – ItemsControl – 如何找到ItemTemplate中的“CheckBox”项目?