Try updating your Style
to
<Style TargetType="{x:Type Button}">
<!-- New Bit -->
<Setter Property="IsEnabled" Value="False"/>
<!-- End of New Bit -->
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding Text, ElementName=Serial_Number, Converter={StaticResource StringToBoolean}}" Value="True"/>
<Condition Binding="{Binding Text, ElementName=Job_Number, Converter={StaticResource StringToBoolean}}" Value="True"/>
</MultiDataTrigger.Conditions>
<Setter Property="IsEnabled" Value="True"/>
</MultiDataTrigger>
</Style.Triggers>
</Style>
which I did by setting the IsEnabled property to False directly on the button
If you set a property on the element, then WPF precedence will make any Trigger
's or default setters for that property pretty much inactive.
Finally it's better to always assign a default value for a property if you're using a Trigger
to modify it and make sure you don't have that property mentioned on the element itself.
In your specific case, you could even do this without using a converter.
<StackPanel xmlns:sys="clr-namespace:System;assembly=mscorlib">
<TextBox x:Name="tbOne" />
<TextBox x:Name="tbTwo" />
<Button Content="Some Button">
<Button.Style>
<Style TargetType="{x:Type Button}">
<Setter Property="IsEnabled"
Value="True" />
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=tbOne,
Path=Text}"
Value="{x:Static sys:String.Empty}">
<Setter Property="IsEnabled"
Value="False" />
</DataTrigger>
<DataTrigger Binding="{Binding ElementName=tbTwo,
Path=Text}"
Value="{x:Static sys:String.Empty}">
<Setter Property="IsEnabled"
Value="False" />
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
</StackPanel>