set IsEnabled = false Silverlight中的按钮

问题描述 投票:1回答:1

我在ViewModel类中的以下代码中,在构造函数中,我在其中定义启动表单时按钮始终为Enabled = false ...

 public partial class EditarConceptoWindow : ChildWindow
 {
  public EditarConceptoWindow(string documentoId)
  {
     InitializeComponent();
     viewModel.Saved += new EventHandler<Microsoft.Practices.Prism.Events.DataEventArgs<bool>>(ViewModel_Saved);
    viewModel.Calculation += new EventHandler<Microsoft.Practices.Prism.Events.DataEventArgs<bool>>(ViewModel_Calculation);
    this.DataContext = viewModel;

    BtnCalcular.IsEnabled = false;
    BtnObtenerTCRM.IsEnabled = false;
    ....... rest of code 

在放置选中复选框时,如果复选框处于选中状态,则必须将其设置为true,这取决于是否还选择了组合框的特定元素;

   private void cbAgregarManual_Checked(object sender, RoutedEventArgs e)
     {
      if (this.ComboConcepto.SelectedValue.ToString() == "DPI")
        {
            BtnCalcular.IsEnabled = true;
            BtnObtenerTCRM.IsEnabled= true;
        }

    }

仅当单击此复选框并且在组合框中选择了DPI值时,才必须这样做。

但是按钮的行为是,在启动表单时它们始终为IsEnabled = true,并且如果单击了复选框,如果它可以正常工作,但是我找不到原因,因为只有在单击复选框可以工作时, XAML中使用此指令的某些控件(例如TextBoxes和按钮)。

IsEnabled="{Binding ElementName=cbAgregarManual, Path=IsChecked }"

我在ViewModel类中具有以下代码,在构造函数中,在该构造函数中,我定义启动表单时按钮始终为Enabled = false ...公共部分类EditarConceptoWindow:...

c# mvvm silverlight-5.0
1个回答
0
投票
我建议您将启用逻辑集中到一个属性中,以避免这种逻辑设置混乱的不匹配。
© www.soinside.com 2019 - 2024. All rights reserved.