views:

27

answers:

1

I am converting an asp.net MVC application to silverlight, and due to the fact I was doing some 'non-standard' things in my mvc app, I am having a hard time trying to work out how to implement it in Silverlight MVVM.

Basically I was generating all my views from metadata, including links, buttons etc. One example of this that I can't get my head around how to do in Silverlight is that I passed in an action collection to my view, and had a html helper class that then converted these actions into links

        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();
        }

This really worked well in MVC.

What would the equivent be in MVVM? I would expect I could do something much more eligent, more along the lines of creating my actions in my viewmodel, and somehow binding to those actions in my view...

A: 

For something like that you would probably need to create a custom control. Then you could put it in your view and bind it to the collection of Actions which would exist in your ViewModel.

Bryant