44 lines
1.4 KiB
C#
44 lines
1.4 KiB
C#
using Avalonia.Data.Converters;
|
|
using Avalonia.Media;
|
|
using Plugin.Cowain.Wcs.Models.Enum;
|
|
using System;
|
|
using System.Globalization;
|
|
|
|
namespace Plugin.Cowain.Wcs.Converters;
|
|
|
|
public class StationStatusBrushConverter : IValueConverter
|
|
{
|
|
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
|
{
|
|
StationStateEnum state = StationStateEnum.UnKnown;
|
|
if (value is string str && Enum.TryParse<StationStateEnum>(str, out var parsed))
|
|
{
|
|
state = parsed;
|
|
}
|
|
else if (value is int i)
|
|
{
|
|
state = (StationStateEnum)i;
|
|
}
|
|
else if (value is StationStateEnum e)
|
|
{
|
|
state = e;
|
|
}
|
|
// 根据状态返回不同Brush
|
|
return state switch
|
|
{
|
|
StationStateEnum.RequestPick => Brushes.Orange,
|
|
StationStateEnum.Picking => Brushes.Yellow,
|
|
StationStateEnum.PickFinished => Brushes.LightGreen,
|
|
StationStateEnum.RequestPlace => Brushes.OrangeRed,
|
|
StationStateEnum.Placing => Brushes.Yellow,
|
|
StationStateEnum.PlaceFinished => Brushes.LightGreen,
|
|
StationStateEnum.UnKnown or _ => Brushes.Gray,
|
|
};
|
|
}
|
|
|
|
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
}
|