На самом деле, поскольку вы имеете дело с bool, вы можете инвертировать логику и делать это без конвертеров:
<StackPanel Name="sp" />
<Button Content="A Button">
<Button.Style>
<Style TargetType="{x:Type Button}">
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=sp, Path=Children.Count}" Value="0">
<Setter Property="IsEnabled" Value="False"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
Используя это, вы сталкиваетесь с некоторыми проблемами с точки зрения получения обновлений, поскольку Children.Count
не является DP, вы можете использовать ItemsControl
, хотя, чтобы обойти это (он в значительной степени ведет себя как StackPanel
по умолчанию):
<ItemsControl Name="ic" />
<Button Content="A Button">
<Button.Style>
<Style TargetType="{x:Type Button}">
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=ic, Path=Items.Count}" Value="0">
<Setter Property="IsEnabled" Value="False"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>