2009-11-12 5 views
0

Je convertis une application asp.net MVC à Silverlight, et parce que je faisais des choses «non standard» dans mon application mvc, j'ai du mal à essayer de travailler comment l'implémenter dans Silverlight MVVM. Fondamentalement, je produisais toutes mes vues à partir des métadonnées, y compris des liens, des boutons, etc. Un exemple de ceci que je ne peux pas comprendre comment faire dans Silverlight est que je suis passé dans une collection d'action à mon avis, et avait une classe d'aide html qui a ensuite converti ces actions en liensASP MVC à Silverlight MVVM questions

 public static string GenericLinks(this HtmlHelper htmlHelper, int location, bool inTable, int? parentRecordId, List<ModelAction> 

actions) 
     { 
      int actionNo = 1; 
      StringBuilder text = new StringBuilder(); 
      foreach (var action in actions) 
      { 
       if (action.LocationType == location) 
       { 
        if (inTable) 
         text.Append("<td>"); 
        else 
         if (actionNo > 1) 
          text.Append(" | "); 
        text.Append(htmlHelper.ActionLink(action.Label, action.ActionTypeLookup.CodeName, new { actionId = action.ModelActionId, 

parentRecordId = parentRecordId })); 
        if (inTable) 
         text.Append("</td>"); 
        actionNo++; 
       } 
      } 
      return text.ToString(); 
     } 

Cela a vraiment bien fonctionné dans MVC.

Quel serait l'équivoque dans MVVM? Je m'attendrais à ce que je puisse faire quelque chose de plus eligent, plus dans le but de créer mes actions dans mon viewmodel, et de manière contraignante à mes actions ...

Répondre

0

Pour quelque chose comme ça, vous devrez probablement créer un contrôle personnalisé. Ensuite, vous pouvez le placer dans votre vue et le lier à la collection d'actions qui existerait dans votre ViewModel.