2011-02-02 5 views
1
私は現在このように、キー/値ペアのリストを介して設定する必要がありますサーバーコントロールを開発しています

辞書型をカスタムサーバーコントロールの(永続性)プロパティとして使用できますか?

<MyControls:ContentRenderer ID="ContentRenderer1" runat="server"> 
    <MyControls:Placeholders> 
     <MyControls:Placeholder key="ident1">Some text which replaces {ident1}</MyControls:Placeholder> 
     <MyControls:Placeholder key="ident2">Some text which replaces {ident2}</MyControls:Placeholder> 
    </MyControls:Placeholders> 
<MyControls:ContentRenderer /> 

私はプロパティが辞書であることをことをしたいので、私はすぐに自分でプレースホルダのマッピングを取得することができます識別子。私はリスト< T>クラスを使用して上記のマークアップで永続化されるプロパティを作成する方法を知っていますが、私はhashmapのようなデータ構造を持っていたいと思います。

msdnでたくさんのものを読みましたが、制御マークアップが完全に制御されるようにするにはどうすればよいか分かりません。

答えて

0

辞書はこのようにサポートされているとは思いません。ただし、これが行われる方法は、Listを使用する代わりに、キー/オブジェクトの辞書マッピングも格納するカスタムのリストベースのクラスを使用します。

HTH。

+0

したがって、本質的に、すべての要素を2つの異なるデータ構造に保存することをお勧めしますか?私はこれがどのように機能するかを見ていますが、これは本当に醜い解決策です。 – binford

+0

はい、その醜い解決策ですが、それはあなたが辞書形式を使いたい場合には唯一のものです。必ずしもコントロールを2回保存する必要はありません。キーとして名前を格納し、リスト内のインデックスを値として格納することもできます。これにより、同じコントロールを2回格納しないようにすることができます。 –

関連する問題