2012-04-25 23 views
0

OK、奇妙なもの。私はリピータを持つ多くのユーザコントロールを持っています、リピータのレイアウトはすべてのコントロールで同じです、そして、彼らはすべてbindData()メソッドが一般に利用可能です。ブラインドパブリックメソッド(C#)を呼び出す

親コントロールを指定しなくても、別のusercontrolをページング用にセットアップできますか?

私は次の操作を行うことができるよ:

すべての罰金です
((controls.specificuserControlClass)Parent).bindData(); 

を - 私はページャへspecificuserControlClassを指定する必要があるだろうし、あなたが何を参照するならば、「リピーターごとに」それを必要とするでしょうがというのは?

私はParent.bindData()を盲目的に子コントロールから呼び出すことはできますか?私はそのメソッドが存在することを "知っている"(または確かめるためにチェックを作成する)が、Visual Studioはメソッドを知らないので幸せではない。

+0

bindData()メソッドはインターフェイスから提供されますか?そうでなければ、それはできますか? – zimdanen

+0

@zimdanen以下の答えを見て、私はそれができると確信しています、私は今それを試しています! – RemarkLima

答えて

6

あなたのコントロールはすべて特定のインターフェースを実装してみませんか?

((IBindData)Parent).bindData() 

をそして、それは、必要に応じて、各コントロールのメソッドを呼び出す必要があります。

public interface IBindData 
{ 
     void bindData(); 
} 

その後、あなたは単にだろう。

+0

どちらか、またはReflectionを使用してください。 – Dave

+0

個人的には、私はむしろ 'OnItemCreated'をオーバーライドしてコードをビューから外していますが、それはもっと仕事になるでしょう= D – Tejs

+2

あなたのスピードを呪う@Tejs、それは私の答えになるでしょう! :) +1 – SouthShoreAK

関連する問題