Ideas for reducing repetition in control binding
I'd create an extension method that calculates the day by the name of the checkbox.

I'm using dynamic because I don't know the name of your domain class, just replace it with your name.

Also note, I'm using the web version of CheckBox, substitute ID with whatever version you are using.

Here is the class for the extension:

public static class CheckboxExtensions
{
    public static void DetermineStateFromModel(this CheckBox me, dynamic myModel)
    {
        if (!me.ID.Contains("chkValidDay"))
        {
            // Could throw an exception if required.
            return;
        }

        var dayOfWeek = DayOfWeekFromString(me.ID.Replace("chkValidDay", string.Empty));

        me.Checked = myModel.ValidDaysOfWeek.Contains(dayOfWeek);
    }

    private static DayOfWeek DayOfWeekFromString(string dayOfWeek)
    {
        switch (dayOfWeek)
        {
            case "Mon":
                return DayOfWeek.Monday;
            case "Tue":
                return DayOfWeek.Tuesday;
            // ...
            default:
                throw new ApplicationException("Invalid dayOfWeek specified.");

        }
    }
}


Then your calls would be

chkValidDayMon.DetermineStateFromModel(myModel);
chkValidDayTues.DetermineStateFromModel(myModel);
...


Another thing you might look into is to put the CheckBox objects into a list, then you could just iterate it:

dayCheckBoxList.ForEach(checkBox =&gt; checkBox.DetermineStateFromModel(myModel));


Another note, Hungarian casing on variables is not really accepted anymore.  It clutters up the code, and there are too many variable types to abbreviate them all to 3 letters.  Read this.  A better naming convention would be mondayIsValidCheckBox.  You would have to modify my extension method to use this new convention.