Help me resolve command binding issue that I'm having with ToggleHeightMeasurementOn Property (see code below). For some reasons, content binding is working, But command is not binding.
View Code
<UserControl x:Class="HeightMeasurementSelector"
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:common="clr-namespace:HarvesterCore;assembly=HarvesterCore"
mc:Ignorable="d"
d:DesignHeight="85" d:DesignWidth="550" FontSize="16">
<Grid >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="40*"/>
<ColumnDefinition Width="100*"/>
<ColumnDefinition Width="40*"/>
<ColumnDefinition Width="100*"/>
<ColumnDefinition Width="50*"/>
<ColumnDefinition Width="120*"/>
<ColumnDefinition Width="30*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition/>
</Grid.RowDefinitions>
<Button Content="{Binding HeightMeasurementOn,Mode=OneWay}" Command="{Binding ToggleHeightMeasurementOn, Mode=OneWay}" Style="{DynamicResource MetroButton}"
Background="{Binding HeightMeasurementOn,Mode=OneWay,Converter={StaticResource backgroundCvtr}}" FontWeight="Bold" Grid.Column="0" Margin="2"/>
<Label Content="EarHeight" HorizontalAlignment="Center" VerticalAlignment="Center" Grid.Column="1" Style="{DynamicResource BoldLabel}"/>
<Label Content="{Binding HeightMeasurementPrismName, Mode=OneWay}" Style="{DynamicResource BoldLabel}" VerticalAlignment="Center"
Visibility="{Binding HeightMeasurementOn, Mode=OneWay}" HorizontalAlignment="Center" Grid.Column="3"/>
<Label Content="{Binding HeightMeasurementOnUOM, Mode=OneWay}" Style="{DynamicResource BoldLabel}" VerticalAlignment="Center"
Visibility="{Binding HeightMeasurementOn, Mode=OneWay, Converter={StaticResource converter}}" HorizontalAlignment="Center" Grid.Column="5"/>
</Grid>
</UserControl>
Code Behind
Public Class HeightMeasurementSelector
Public Sub New(vm As HeightMeasurementViewModel)
InitializeComponent()
Me.DataContext = vm
End Sub
End Class
ViewModel Code
Public Class HeightMeasurementViewModel
Inherits ViewModelBase
Private model As HeightMeasurementModel
Public Sub New(model As HeightMeasurementModel)
Me.model = model
End Sub
Public ReadOnly Property HeightMeasurementOn As Boolean
Get
Return model.HeightMeasurementOn
End Get
End Property
Public ReadOnly Property ToggleHeightMeasurementOn As ICommand
Get
Return New DelegateCommand(Sub()
model.HeightMeasurementOn = Not model.HeightMeasurementOn
End Sub)
End Get
End Property
End Class
Model Code
Private earHtOn As Boolean
Public Property HeightMeasurementOn As Boolean
Get
Return earHtOn
End Get
Set(value As Boolean)
earHtOn = value
If earHtOn Then
taker.VisualTrait_On()
ElseIf (Not HeightMeasurementOn ) AndAlso (Not PlantHeightOn) AndAlso (Not vtModel.VisualTraitActive) Then
taker.VisualTrait_Off()
End If
RaiseEvent EarHeightOnChanged(HeightMeasurementOn)
RaiseEvent DialogOnChanged(DialogOn)
End Set
End Property