With AutoSave="True" on the FeatureLayer, FeatureDataGrid's Commit button is disabled because it does not require calling SaveEdits(). Any change to the layer are automatically pushed to the server. You need to set this to False if you want to explicitly perform the save with the Commit button.
FeatureDataForm Apply button only means you are done editing but it does not commit a save (unless AutoSave is true) unlike FeatureDataGrid's Commit button. With AutoSave="False", you need to explicitly call SaveEdits() on FeatureDataForm's EditEnded. FeatureDataGrid on the other hand, will handle the save when you click "Commit".
<esri:FeatureLayer ID="AllAvailableLayer" Url="http://gismaps.pagnet.org/ArcGIS/rest/services/testprojectALLBikeCounts/FeatureServer/0" SelectionColor="Yellow" Renderer="{StaticResource AllRenderer}" OutFields="*" DisableClientCaching="True" AutoSave="False" MouseLeftButtonUp="FeatureLayer_MouseLeftButtonUp" /> <!--and--> <esri:FeatureDataGrid x:Name="MyDataGrid" Grid.Column="0" Grid.Row="1" Map="{Binding ElementName=MyMap}" GraphicsLayer="{Binding ElementName=MyMap, Path=Layers.[AllAvailableLayer]}" IsReadOnly="False" IsEnabled="True" AlternatingRowBackground="BurlyWood" AreRowDetailsFrozen="False" />
The expected behavior is that Commit button will be enabled once an edit to a field have been submitted (which you do when you leave the TextBox).Actually, the commit button in the sample does not become enabled until you leave the edited row. (At least when run on my box.) It would be better if it worked at the textbox level.
You can refer to the following example: http://help.arcgis.com/en/webapi/silverlight/samples/start.htm#ToolkitFeatureDataGrid.
Commit button does not re-enable on TextChanged, it is only after you the TextBox looses focus that the change is detected.