我有一個WPF應用程序,其中我使用轉換器作爲布爾值,以便在指定的時間範圍內顯示時間時將某些文本變爲紅色。時間每3秒更新一次。當有人被標記爲休息時間並且他們休息15分鐘以上時,數據網格中顯示的文本應該變爲紅色。在這種情況下,什麼也沒有發生,我找不到問題。需要WPF轉換器無法工作的幫助
轉換器:
public class BreakRangeToBooleanConverterTime : IValueConverter
{
public static readonly TimeSpan _toCompare = new TimeSpan(00, 15, 00);
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (!(value is TimeSpan))
return DependencyProperty.UnsetValue;
return (TimeSpan)value > _toCompare;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new Exception("To Long On Break");
}
}
XAML代碼:
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding AuxReasons}" Value="Break"/>
<Condition Binding="{Binding Time, RelativeSource={RelativeSource Self}, Converter={StaticResource breakconvtime}}" Value="True"/>
</MultiDataTrigger.Conditions>
<Setter Property="Foreground" Value="Red"/>
<Setter Property="Background" Value="SkyBlue"/>
</MultiDataTrigger>
你有沒有定義的資源''BreakRangeToBooleanConverterTime用鑰匙'breakconvtime'? –
是的定義。對不起,我忘了把它包含在我的代碼中。代碼編譯沒有錯誤。 – firehotguitar88
@ firehotguitar88,調試它。在Convert方法中設置一個斷點以確認它是否調用(或不),並且它接收並返回正確(或不正確)的值。另外,如果'時間'是視圖模型的屬性'RelativeSource = {RelativeSource Self}'是不需要的。 – ASh