2014-01-13 189 views
0

我正在使用進度條,我試圖找到一種方法將前景色設置爲紅色,如果其下面的標籤中的showError變量(布爾值)爲true。我可以使用數據觸發器根據進度欄值設置前景色,如下所示,但我無法捕獲showError變量中的值。有人設法做到這一點?WPF更改進度條前景顏色

<ProgressBar Maximum="{Binding Max}" Minimum="{Binding Min}" Name="progressBar" Value="{Binding Path=Value}" > 
     <ProgressBar.Resources> 
      <Style TargetType="{x:Type ProgressBar}"> 
       <Style.Triggers> 
        <DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=Value}" Value="10"> 
         <Setter Property="Foreground" Value="Blue"/> 
        </DataTrigger> 
       </Style.Triggers> 
      </Style> 
     </ProgressBar.Resources> 
    </ProgressBar> 
    <Label Visibility="{Binding Path=ShowError, Converter={StaticResource booleanToVisibilityConverter}}" Content="Service was not available" Height="28" HorizontalAlignment="Left" Margin="408,238,0,0" Name="label2"/> 

回答

0

看起來像ShowError是您的視圖模型的屬性。因此,您不需要ProgressBarLabel之間的任何關係。只需使用類似這樣的東西:

<ProgressBar> 
    <ProgressBar.Style> 
     <Style TargetType="{x:Type ProgressBar}"> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding ShowError}" Value="True"> 
        <Setter Property="Foreground" Value="Red"/> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </ProgressBar.Style> 
</ProgressBar> 
+0

對不起,我應該說清楚。 ShowError是我的viewmodel的一個屬性。非常感謝。我會試試這個。 – user1698316

+0

工作完美謝謝。 – user1698316

0

由於您的標籤和進度條都綁定到View Model Property ShowError,因此您不需要使標籤和進度欄相互依賴。

Registers Jashobanta