2016-10-04 31 views
0

私が達成しようとしているのは、アプリケーションの現在のコンテキストで実行時にいくつかのプロパティを動的に設定することです。現在のコンテキストでプロパティを動的に設定する

例:

のは、私は、Webページを実行していますし、ページロードイベント内で、私は動的にコントロールのプロパティを設定したいとしましょう - プロパティ、私はそれがDBまたは外部リソースに保存されています。

私はリフレクションを試しましたが、実行時ではなくコンパイル時に既存のオブジェクトを指す必要があるため、動作しません。 コード例:

string propertyName = "RadTabStrip1.Tabs[0]"; 
    string propertyValue = "Bla bla"; 

    Type t = typeof(RadTab); 
    t.InvokeMember("Text", BindingFlags.SetField | BindingFlags.SetProperty, null, propertyName, new object[] { propertyValue }); 

は反射、codedomeまたはLINQの式のいずれかを使用することによって、これを達成するための方法はありますか?

これは、CodeDomを使用している場合、現在のコンテキストの外部で実行されるという点を除いて、CodeDomで実現するのはかなり簡単です。つまり、現在のコンテキストコントロール/オブジェクトにアクセスできなくなります。コード化されたものと何らかの種類のrefパラメータを使用することは可能ですか?

答えて

0

私はあなたが単に反射f.eを使用することができます参照してください。 RadTabStrip1.Tabs [0]:RadTabStrip1.TabsがいるICollection(リスト)であると私は動的などのリストの最初の項目のTextプロパティを設定する必要がありながら、実際にはこの

var tab = new RadTab(); // i guess you have that object reference somewhere else 
var type = typeof(RadTab); 
type.GetProperty(propertyName).SetValue(tab, propertyValue); 
+0

のように、RadTabStripそれはTelerikコントロールです。テキスト=値; – Sergiu

関連する問題