如何检查是在WPF Prism中选中的复选框

时间:2012-01-07 10:00:03

标签: wpf mvvm

我有一个UserControlButtons.Xaml,其中有复选框和按钮Save。单击保存时,如果选中复选框,则打开弹出窗口。始终启用。

          <CheckBox x:Name="checkBox1" VerticalAlignment="Center"  Content="Add To Time Sheet" FontSize="14" Grid.Row="0" Grid.Column="2" Margin="2,2,2,2"
             IsChecked="{Binding ElementName=UserControlButtons, Path=UserControlButtonsBL .IsCheckedComplete,Mode=TwoWay}"

在UserControlButtonsViewModel中,DelegateCommand Save具有CanSave并保存

在BL模块中有UserControlButtonsBL,我在这里声明了复选框

的属性
     private bool _isCheckedComplete;
     public bool IsCheckedComplete
     {
         get { return _isCheckedComplete; }
         set
         {
             _isCheckedComplete = value;

         }
     }

在我后面的代码中添加了依赖属性

    public UserControlButtonsBL UserControlButtonsBL 
    {
        get
        {
            return (UserControlButtonsBL )GetValue(UserControlButtonsBLProperty);
        }
        set
        {
            SetValue(UserControlButtonsBLProperty, value);
        }
    } 

这里甚至当我选中复选框IsCheckedComplete给我错误

1 个答案:

答案 0 :(得分:1)

在复选框中,您应该以两种方式进行绑定模式,并将更新源触发器设置为PropertyChanged

           <CheckBox x:Name="checkBox1" VerticalAlignment="Center"  Content="Add To Time Sheet" FontSize="14" Grid.Row="0" Grid.Column="2" Margin="2,2,2,2"
         IsChecked="{Binding ElementName=UserControlButtons, Path=UserControlButtonsBL .IsCheckedComplete,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"  

这里我假设您已正确设置了DataContext ....如果复选框位于UserControl中,DataContextmyDataCntext,则绑定路径将直接属性为IsChecked < / p>