复杂的自定义控件和属性可见性

时间:2011-11-14 08:23:42

标签: c# .net wpf user-controls

我正在开发一个自定义WPF控件(“多选择器”)。我将用户ItemsSource属性用于绑定目的,但在内部我正在使用这样的ItemWrappers集合:

<UserControl x:Class="TFSControls.MultiSelectorControl.MultiSelectorControl">
    <ItemsControl Name="ItemsPresenter" ItemsSource="{Binding ItemWrappers}">
        ...
    </ItemsControl>
</UserControl>

问题是,为了使这个绑定工作,ItemWrappers属性必须是公共的。 我会对内部感到满意,因为控件位于自己的组件中。

实现这一目标的最简单方法是什么?

我所知道的唯一解决方案是在我的程序集中继承ItemsControl,但这似乎不正确 - 我不需要自定义行为,只是希望此属性是内部/受保护的。

2 个答案:

答案 0 :(得分:0)

您可以使ItemWrappers成为只读依赖项属性。

答案 1 :(得分:0)

属性必须是公共的,但对象本身可能不是。因此,作为另一种可能的解决方案,您可以将此属性封装在另一个类中,在控件中将该类的实例设置为私有并绑定到它。

相关问题