我的xaml中有一个复选框,它绑定到一个属性,即使该属性为false,也不会禁用该复选框。
这是xaml:
<DataGridTemplateColumn Header="checkBox" Width="60">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding Path=IsClickable}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
viewModel.cs
public bool IsClickable
{
get { return _isClickable; }
set { _isClickable = value;
PropertChanged("IsClickable");}
}
我在创建对象时设置了这个属性。
我使用itemsource绑定datagrid;
Datagrid.ItemsSource = ViewModels;
我可以看到viewmodel的对象集合确实将该属性填充为false。但是没有禁用该复选框。
有人可以告诉我为什么好吗?
答案 0 :(得分:3)
您绑定了IsChecked
属性,但如果要启用/禁用CheckBox
,则需要绑定IsEnabled
属性:
<CheckBox IsEnabled="{Binding Path=IsClickable}" />
(您可能需要将IsChecked
绑定到其他位置,否则您将无法检索已检查的状态)