在自定义控件中公开ItemContainerGenerator的优雅方式

时间:2019-06-27 09:39:04

标签: c# wpf xaml

从自定义控件中公开ItemContainerGenerator的优雅方法是什么?

我的自定义控件具有ItemsSource属性,我想访问与其外部绑定项目相对应的UIElement

我无权访问ItemsControlItemsContainerGenerator。我应该将ItemsControlItemContainerGenerator公开为属性,还是应该添加检索UIElement的方法?

我需要显示所选项目附近的弹出窗口。也许弹出窗口应该是控件的一部分,那么我就不必这样做了?

1 个答案:

答案 0 :(得分:1)

如果您希望能够访问整个子ItemsControl,请创建一个返回它的公共只读属性。

如果您只想公开ItemContainerGenerator,请创建一个只读属性以将其返回,例如:

public ChildItemContainerGenerator => childControl.ItemContainerGenerator;

如果公开整个ItemContainerGenerator毫无意义,请创建一个公共方法,该方法在内部使用ItemContainerGenerator执行您想要执行的操作。

选择所有选项的选择实际上取决于您的要求。