I have a button with the a Button with its IsEnabled Property bound to a bool property that only has a getter, a test
<Button Text="MyButton" IsEnabled="{Binding UserInputOK}" />
public bool UserInputOK
{
get { return SomeTest1 && SomeTest2; }
}
When VM values changes, a PropertyChanged Notification is raised against the UserInputOK property and IsEnabled state is effected, perfect.
The issue is the initial state, when the page is loaded the UserInputOK property getter is accessed proving that the binding attached is attached on load. However the value is ignored, if the UserInputOK returns false the button has initial state of Enabled; i.e. true. Once a PropertyChanged notification is raise the issue is corrected.
This seems to be an ordering issue, I can resolve the issue by reverting to using UserInputOK with a getter and setter.