Я работаю над приложением, использующим протокол TCP.Я хочу показать разные статусы сообщения в разных цветах (подключить = зеленый, отключить = красный)
Я определил перечисление:
public enum ComunicationStateTypeEnum
{
COMUNICATION_CONNECTED,
COMUNICATION_DISCONNECTED
};
Я определил класс преобразования:
namespace Conversion
{
[ValueConversion(typeof(ComunicationStateTypeEnum), typeof(Brushes))]
public class ComStatusToColor : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
ComunicationStateTypeEnum state = (ComunicationStateTypeEnum)value;
if (state == ComunicationStateTypeEnum.COMUNICATION_CONNECTED)
return Brushes.Green;
return Brushes.Red;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return null;
}
}
}
В Xaml я определил эллипс:
<Ellipse Name="ComEllipse" Height="25" Width="30" Fill ="{Binding Path=eCommStatus, Converter={StaticResource ComStatusToColor}}" Stroke="Black" DockPanel.Dock="Left"/>
также в Xaml я определил:
xmlns:ConversionNamespace="clr-namespace:Conversion"
<Window.Resources>
<ConversionNamespace:ComStatusToColor x:Key="ComStatusToColor"/>
</Window.Resources>
Я хочу привязать ксуществующий объект, поэтому я инициировал:
ComEllipse.DataContext = SystemLogic.GetInstance();
(SystemLogic является синглтоном)
и в SystemLogic я определил:
public class SystemLogic
{
public ComunicationStateTypeEnum eCommStatus { get; set; }
...
}
eCommStatus инициируется для COMUNICATION_DISCONNECTED вконструктор и эллипс становятся красными, а когда член eCommStatus изменяется на COMUNICATION_CONNECTED, эллипс не меняет свой цвет
Что не так?
Gil