2011-01-17 19 views
0

約6ヶ月からASPを知っています。私は自分のデータバインディング・メカニズムを作成しましたし、私はこのような気にいらを行うには、いくつかの解決策が必要になります。カスタムASPバインドメカニズムの問題

私は私のASPXに

<myButton id="someID" runat="server" Text="SomeText" BackColor="{SomeContext}" /> 

をこのサンプルコードを持っていると私は、このコントロールに私の財産を持っているコンテキストのタイプオブジェクト。内部にあるプロパティをバインドしたいコンテキストBackColorプロパティです。プロパティの名前SomeContextです(角カッコ内)。私が必要とするのは、{}の中に名前があることを識別するためにTypeConverterなどの技術を使用し、myButtonのインスタンス内の名前を覚えておくことだけです。何か案は???

私はにTypeConverterから継承された自分自身のクラスを使用し、カラー(のBackColorプロパティ)に値{SomeContext}変換の瞬間を捕捉することができると考えました。私はこの瞬間をキャッチすることができますが、私はターゲットコントロール、文字列値の空のコンテキストのみについての情報がありません。何とかターゲットプロパティを取得する方法を誰かが知っていれば、非常になります!役に立った

私は、Web、および何を検索してきた

...

+0

はなぜ、正規のデータバインディング式は動作しません:(<%# ... %>)? – Craig

答えて

0

あなたは直接の後ろにあなたのコードでこれを設定することができます。

someID.BackColor = context.Color; 
+0

はい、現在のプロジェクトでコードビハインドを使用していません。だから多分何か...? – Paul

0

プロジェクトでコードビハインドを使用しません。ウェブサイトはデータベースからコンパイルされたカスタマイズされたaspxからレンダリングされます。私のシステムには特別なアプローチがあり、私の縛りはそれの主要な部分です。通常のデータバインディング式は、ASPバインディングを使用しているため使用できません。

+0

カスタム式ビルダーが役に立ちます。私はこれを確認し、ここに回答を投稿します。 – Paul

+0

残念ながら、ここで表現は助けにならない。私はTypeConverterのようないくつかのC#ソリューションが必要です。あるいは、ASP式のようなILを生成する方法にアプローチしますが、私のクラスや他のものによって制御されるILコードがあります。だから私はここで反射を助けるだろうと思うが、どう? – Paul

0

残念ながら、問題の解決策が見つからなかったため、内部プロパティを使用することにしました。私はこのようなASPXコードを使用します:

<myButton runat="server" ID="someID"> 
    <Binding> 
     <Bind Target="BackColor" Source="ColorOfBackgroundFromContext" /> 
     <Bind Target="ForColor" Source="ColorOfForegroundFromContext" /> 
    </Binding> 
</myButton> 
関連する問題