Wenn Du das Feld Property impelemntierst, kannst Du mit INotifyPropertyChanged bei jeder Änderung darauf reagieren.
Google liefert mit dem suchbegriff xsd to sql foglende Ergebnisse.
Ich will mich da jetzt nicht in die Nesseln setzen, aber für mich wären solche Sachen die Du da machen möchtest in der VIEW oben.
Das MVVM Pattern sieht ja vor die UI mit dem Rest mittels Vermittler (ViewModel) zusammen zubringen ohne dass diese von einander was wissen.
Canvas etc. sehe ich nicht als Bestandteil, dass man im MVVM verwenden sollte hierfür müsstest Du dir ja entsprechende UserControls machen und auch die Styles dementsprechend dort oder in einem ResourceDictionary definieren.
@MarsStein
Die kenne ich leider nicht X(
TableRowEventArgs dieses Event ist gemäss Suche auf Google nur im Infragistics Grid vorhanden. Ich beziehe mich auf das Standard GridView von .NET.
Also mein vorgeschlagener Ansatz hat bis jetzt immer funktioniert 😉
Wenn ich ein Control suchen will, dass in einem Template vorhanden ist, dann mache ich dass im OnRowDataBound. Dort kannst Du mit
foreach(var cell in e.row.cells){
Control myControl = (Control)cell.FindControl("MyControl");
}
Danach suchen.
Wichtig ist, dass Du am Anfang überprüfst ob die Row eine Header oder eine DataRow ist. Wenn das Control in keiner Header-Row vorhanden ist, dann hast Du die NULL-Reference Exception darum prüfe ich immer so:
if (e.Row.RowType == DataControlRowType.DataRow){
foreach (DataControlFieldCell cell in e.Row.Cells.OfType<DataControlFieldCell>().ToList())
{
if (cell.Controls.OfType<CheckBox>().FirstOrDefault<CheckBox>() != null && cell.Controls.OfType<CheckBox>().FirstOrDefault<CheckBox>().ID.Contains("SmartCardExpress"))
{
smartcardexpress = cell.Controls.OfType<CheckBox>().FirstOrDefault<CheckBox>();
}
if (cell.Controls.OfType<CheckBox>().FirstOrDefault<CheckBox>() != null && cell.Controls.OfType<CheckBox>().FirstOrDefault<CheckBox>().ID.Contains("PermanentService"))
{
permanentservice = cell.Controls.OfType<CheckBox>().FirstOrDefault<CheckBox>();
}
}
}
So funktionierts bei mir eigentlich immer. Und wenn Du die DropDownListBox gefunden hast, kannst Du dort wiederum
MyDropDonwListBox.Controls.OfType<TreeView>()
zum suchen verwenden.
Das sieht so aus wie MarsStein vermutet. Es sind wohl zuwenige Einträge vorhanden als dass die Button's aktiviert werden. Vielleicht noch schnell hier (ListView Web Server Control Overview) vergleichen, soweit ich gesehen habe, wird dort Schritt-für-Schritt eine Einführung ins ListView gegeben.
Das DataPaging ist etwa in der Mitte der Seite erklärt.
Vielleicht hilft Dir Page.Request.Params weiter, was in diesem Artikel (Understanding the JavaScript __doPostBack Function) erklärt wird.
UpdatePanels können auch Controls erhalten und das würde dann so aussehen:
UpdatePanel childPanel = new ChildPanel();
MyParentPanel.Controls.Add(childPanel);
Soweit ich dann aber weiss muss der Update Mode auf Conditional stehen, wenn Aktionen vom Codebehind her kommen.
Gibt es eine Möglichkeit das eleganter zu Lösen um unnötige Ladezeit zu verkürzen und den Traffic zum Datenbankserver zu minimieren?
Gibt es, aber Performananz und Seitensource-Quelltext werden mit MS-Ajax immer grösser. Alternativ würde ich Dir raten JQuery und JQueryTemplates anzuschauen.