我有一个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给我错误
答案 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中,DataContext
为myDataCntext
,则绑定路径将直接属性为IsChecked < / p>