我正在开发一个自定义WPF控件("multi selector")。我给我的用户ItemsSource
属性绑定的目的,但在内部我使用ItemWrappers集合像这样:
<UserControl x:Class="TFSControls.MultiSelectorControl.MultiSelectorControl">
<ItemsControl Name="ItemsPresenter" ItemsSource="{Binding ItemWrappers}">
...
</ItemsControl>
</UserControl>
问题是,为了使这个绑定工作,ItemWrappers属性必须是公共的。我很乐意使用internal,因为控件位于其自己的程序集中。
实现这一点最简单的方法是什么?
我所知道的唯一解决方案是子类ItemsControl在我的程序集,但这似乎不正确-我不需要自定义行为,只是希望这个属性是内部/保护。
属性必须是公共的,但对象本身可以不是。因此,作为另一种可能的解决方案,您可以将此属性封装在另一个类中,在控件中创建该类的私有实例并绑定到它。
您可以将ItemWrappers
设置为只读依赖属性