私はカスタムWPFコントロール( "マルチセレクタ")を開発しています。私は、結合の目的のために、私のユーザーにItemsSource
財産を与えるが、内部的に私はこのようなItemWrappersコレクションを使用しています:複雑なカスタムコントロールとプロパティの可視性
<UserControl x:Class="TFSControls.MultiSelectorControl.MultiSelectorControl">
<ItemsControl Name="ItemsPresenter" ItemsSource="{Binding ItemWrappers}">
...
</ItemsControl>
</UserControl>
問題がItemWrappersプロパティを動作するように結合、このためには、パブリックでなければならないことです。 コントロールが自分のアセンブリに座っているので、私は内部に満足しています。
これを達成する最も簡単な方法は何ですか?
私の知っている唯一の解決策は、私のアセンブリでItemsControlをサブクラス化することですが、それは正しいとは思わない - 私はカスタム動作を必要とせず、このプロパティを内部/保護したい。
あなたが言っているのは、いくつかのコレクションプロパティをパブリックではあるが、 'ItemWrappers'ではなくユーザコントロールから公開したいということです。正しい? –
私はItemWrappersを内部にし、ItemsControlを使用している私のコントロールの内側にバインドすることができます。他のプロパティ(ItemsSource)はここでは重要ではありませんが、私はユーザーにバインドするための他のパブリックプロパティを持っていると言われています。 つまり、コントロールは次のように使用する必要があります。 ' ' –
kubal5003
その場合、あなたの 'ItemsWrapper'プロパティをプライベート依存プロパティKey(つまり、読み取り専用として登録されている依存関係プロパティ)とします。 –