2012-10-03 50 views
1

我的wpf应用程序中有一个切换按钮。在启动时,必须设置togglebutton。在启动时设置按钮的ToggleState并检查状态

我的XAML文件:

<ToggleButton Content="AUD Reset" IsChecked="True" Height="23" HorizontalAlignment="Center" Margin="0" Name="button4" Command="{Binding Path=ConnectCommand}" VerticalAlignment="Center" Width="100" />     

在切换按钮点击我想在我的ViewModel类来检查切换状态,如果返回true,则我想要做如下操作:

我ViewModel类:

private ICommand mUpdater; 
    public ICommand ConnectCommand 
    { 
     get 
     { 
      if (mUpdater == null) 
       mUpdater = new DelegateCommand(new Action(ConnectToSelectedDevice), new Func<bool>(ConnectCanExecute)); 

      return mUpdater; 
     } 
     set 
     { 
      mUpdater = value; 
     } 
    } 

    public bool ConnectCanExecute() 
    { 
     return true; 
    } 

    public void ConnectToSelectedDevice() 
    { 
     mComm.SetAddress(0x40); 
     Byte[] buffer= new Byte[2]; 
     buffer[0] = 0x24; 
     buffer[1] = 0x00; 

     if(Check if button togglestate is set, if true then) 
     { 
     buffer[1] = 0x04; 
     } 
     mComm.WriteBytes(2, buffer); 
    } 

我如何检查T是否他的togglebutton被检查或不在我的viewmodel并执行上述语句。

请帮忙!!

回答

2

您可以ToggleButton.IsChecked依赖属性财产器isChecked添加到您的视图模型,并将其绑定:

public bool IsChecked { 
    get { return this.isChecked; } 
    set { 
     this.isChecked = value; 
     this.OnPropertyChanged("IsChecked"); 
    } 
} 

<ToggleButton Content="AUD Reset" IsChecked="{Binding Path=IsChecked}" Height="23" HorizontalAlignment="Center" Margin="0" Name="button4" Command={Binding Path=ConnectCommand} VerticalAlignment="Center" Width="100" />  

然后检查其状态:

public void ConnectToSelectedDevice() 
{ 
    mComm.SetAddress(0x40); 
    Byte[] buffer= new Byte[2]; 
    buffer[0] = 0x24; 
    buffer[1] = 0x00; 

    if(this.IsChecked) 
    { 
    buffer[1] = 0x04; 
    } 
    mComm.WriteBytes(2, buffer); 
} 

最后,在视图模型的构造函数初始化财产器isChecked :

public ViewModel() { 
    this.IsChecked = true; 
} 
+0

真棒:)它的工作:)谢谢SHSE。 –