2

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

0 Answers0