gpt4 book ai didi

wpf - 如何获取 WPF ItemsControl 的通用 ItemContainer 类型

转载 作者:行者123 更新时间:2023-12-02 07:04:49 25 4
gpt4 key购买 nike

我想从现有 ItemsControl 对象确定 ItemContainer 类型。

   var item = control as ItemsControl;
//HOW to get child container Type?

混合如何完成的示例:

enter image description here

Blend 以某种方式确定当前 TabControl 类型子项是 TabItem

如何在代码中做同样的事情?

最佳答案

有一个StyleTypedPropertyAttribute大多数从 ItemsControl 派生的类。获取 Property 等于 "ItemContainerStyle" 的属性。此属性上的 StyleTargetType 属性应为您提供项目类型。

请注意,您必须小心不要从基类获取属性。此外,虽然这适用于大多数类型(TabControlListBox),但某些类(例如 DataGrid)根本没有使用此属性进行注释。

这是我用于内置框架类型的列表:

var _itemsContainerTypeByContainerType = new Dictionary<Type, Type> {
{ typeof(ComboBox), typeof(ComboBoxItem) },
{ typeof(ContextMenu), typeof(MenuItem) },
{ typeof(DataGrid), typeof(DataGridRow) },
{ typeof(DataGridCellsPresenter), typeof(DataGridCell) },
{ typeof(DataGridColumnHeadersPresenter), typeof(DataGridColumnHeader) },
{ typeof(HeaderedItemsControl), typeof(ContentPresenter) },
{ typeof(ItemsControl), typeof(ContentPresenter) },
{ typeof(ListBox), typeof(ListBoxItem) },
{ typeof(ListView), typeof(ListViewItem) },
{ typeof(Menu), typeof(MenuItem) },
{ typeof(MenuBase), typeof(MenuItem) },
{ typeof(MenuItem), typeof(MenuItem) },
{ typeof(MultiSelector), typeof(ContentPresenter) },
{ typeof(Selector), typeof(ContentPresenter) },
{ typeof(StatusBar), typeof(StatusBarItem) },
{ typeof(TabControl), typeof(TabItem) },
{ typeof(TreeView), typeof(TreeViewItem) },
{ typeof(TreeViewItem), typeof(TreeViewItem) }
};

关于wpf - 如何获取 WPF ItemsControl 的通用 ItemContainer 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12436992/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com