- 1. 構建xml文字
- 2. 使用xmltextreader生成控制項
- 3. 將控制項放入頁面
window.cs
stackpanel sp;//容器
list
sourcelist = getsource();//資料來源
//構建文字框集合
string xmlcontrols;
foreach (sourcemodel in sourcelist)
//構建stackpanel,將文字框集合放入其中
string strxaml =
"+"xmlns=\"" "
+"xmlns:x=\"" "
+"xmlns:c1=\"" "
+"xmlns:basiccontrols=\"clr-namespace:shenliansystem.common.basiccontrols\" "
+"orientation=\"horizontal\" "
+">"+""
+""+""
+""+""
+""+""
+ xmlcontrols +
"";//根據構建好的xml,生成控制項children
stringreader strreader =
new stringreader(strxaml);
system.
xml.xmltextreader xmlreader =
new system.
xml.xmltextreader(strreader);
var children = xamlreader.load(xmlreader) as frameworkelement;//生成的內容
//將控制項children放入容器sp
sp.children.clear();
sp.children.add(children);
一般情況下需要做繫結屬性:
window.cs
xmlcontrols = "" +
"" +
"" +
...;
viewmodel
sourcemodel sourcemodel1
sourcemodel sourcemodel2
sourcemodel sourcemodel3
...
**但由於屬性個數不確定,無法在後台宣告對應的變數
用乙個動態型別包裝一下,將這些數目不確定的變數變成這個動態實體的屬性**
window.cs
for(int i = 1; i <= sourcelist.count; i++)\"/>";
}
viewmodel
dynamicsourcemodel dynamicsourcemodel
////// 構建動態實體
///public
void
setmodel()
}///
/// 動態實體類
///public
class dynamicsourcemodel : dynamicobject
////// 取值
//////
變數名///
是否有此變數
///變數值
public
bool
trygetmember(string key, out sourcemodel result)
////// 按約束重寫
//////
//////
public
override
bool
trygetmember(getmemberbinder binder, out
object result)
////// 取值
//////
變數字典
public dictionary trygetmember()
}
asp Repeater繫結資料來源
page language c autoeventwireup true codebehind showrepeater.aspx.cs inherits binddata.connection.showrepeater using system using system.collections.g...
WPF Silverlight 資料來源繫結方式
wpf oneway 使用 oneway 繫結時,每當源發生變化,資料就會從源流向目標。onetime 繫結也會將資料從源傳送到目標 但是,僅當啟動了應用程式或 datacontext 發生更改時才會如此操作,因此,它不會偵聽源中的更改通知。onewaytosource 繫結會將資料從目標傳送到源。...
gridview 繫結資料來源
本人剛剛學習asp.net c 整理一下關於 gridview的使用 if page.ispostback this.panel1.visible true this.gridview1.emptydatatext 暫沒有資料 this.gridview1.emptydatarowstyle.hor...