I'm attempting to implement a value converter that will change the color of a button on a user control based on the custom "MyUserControlStatus" property of the user control "MyUserControl".
The code-behind looks like this:
Public Class MyUserControl
Public Property MyUserControlStatus As Integer = 0
End Class
Public Class StatusIndicatorConverter
Implements IValueConverter
Public Function Convert(value As Object, targetType As Type, parameter As Object, culture As CultureInfo) As Object Implements IValueConverter.Convert
Dim indicatorbrush As Brush = Brushes.Transparent
Dim status As Integer = CType(value, Integer)
Select Case status
Case 0 : indicatorbrush = Brushes.Red
Case 1: indicatorbrush = Brushes.Green
Case 2 : indicatorbrush = Brushes.Yellow
End Select
Return indicatorbrush
End Function
Public Function ConvertBack(value As Object, targetType As Type, parameter As Object, culture As CultureInfo) As Object Implements IValueConverter.ConvertBack
Throw New NotImplementedException()
End Function
End Class
The XAML looks like this:
<UserControl x:Class="MyUserControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:MainApplicationName"
xmlns:wpf="clr-namespace:LibVLCSharp.WPF;assembly=LibVLCSharp.WPF"
mc:Ignorable="d"
>
<UserControl.Resources>
<local:StatusIndicatorConverter x:Key="MyStatusIndicatorConverter"/>
</UserControl.Resources>
<Button x:Name="ButtonStatusIndicator"
Background="{Binding Path=MyUserControlStatus, Converter={StaticResource MyStatusIndicatorConverter}, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
>
<Button.Resources>
<Style TargetType="Border">
<Setter Property="Height" Value="10"/>
<Setter Property="Width" Value="10"/>
<Setter Property="CornerRadius" Value="10"/>
</Style>
</Button.Resources>
</Button>
</UserControl>
I get an empty, non-colored status. The breakpoints within the Convert function don't fire. I'm not sure what I'm doing wrong here, as all the parts seem to be in place. It should have made the button indicator red (for value=0). The expectation is that, as the MyUserControlStatus changes, the color of the indicator button will change, too, as it is bound to MyUserControlStatus and that value is converted to a color.