The problem is a bug in the MahApps.ProgressIndicator
control.
If you look at the source code, you'll notice that it overwrites the DataContext
to itself:
public ProgressIndicator()
{
InitializeComponent();
this.DataContext = this;
As such, you'll need to work around this (stupid) limitation by binding to an element name directly, effectively avoiding using the normal data binding.
For example, if you name your Window
(in the xaml), ie:
<Window ...
Name="Self">
<!--...
You could do:
<MahAppsControls:ProgressIndicator Width="100"
Height="10"
VerticalAlignment="Center"
ProgressColour="White"
Visibility="{Binding ElementName=Self, Path=DataContext.ProgressVisibility}"/>