我在加载一系列仪表用户控件的用户控件中有以下 XAML:
<ItemsControl ItemsSource="{Binding InstanceViper.Gauges}" Grid.Row="7" Grid.ColumnSpan="4">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Name="GaugePanel" VerticalAlignment="Bottom" HorizontalAlignment="Left" Orientation="Horizontal">
</WrapPanel>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<local:Gauge DataContext="{Binding}" AlwaysShowGauge="False"></local:Gauge>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
我正在传递一个标志,该标志确定仪表是否应始终显示或仅在警报时显示。现在在仪表 xaml 中,我想做如下的事情来确定是否应该显示它:
<Border Name="MainBorder" Visibility="{Binding (ShowAlarm || AlwaysShowGauge) ,Converter={StaticResource BooleanToVisibilityConverter}}">
问题是 ShowAlarm 属性来自仪表视图模型,而 AlwaysShowGauge 是在数据模板中传入的本地属性。ShowAlarm 是动态的,但 AlwaysShowGauge 一旦设置就不会改变。我怎样才能做到这一点?