我想在DataGrid中添加自定义列:

<DataGridTemplateColumn Header="Click">
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <CheckBox IsChecked="{Binding IsChecked}" />
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

但是,单击CheckBox(选中/取消选中)不会触发属性 setter
bool _isChecked;
public bool IsChecked
{
    get { return _isChecked; }
    set
    {
        _isChecked = value; // setting breakpoint here
        OnPropertyChanged();
    }
}

setter 有时会被调用,但是我无法理解确切的时间:何时切换行?当我双击另一个单元格时?要不然是啥?

如果我使用ListView,则绑定(bind)会立即触发

我的问题:怎么回事?如何在我勾选/取消选中CheckBox时立即让setter调用?

最佳答案

<CheckBox IsChecked="{Binding IsChecked,UpdateSourceTrigger=PropertyChanged}" />
应该解决您的问题。

关于c# - DataGridTemplateColumn绑定(bind),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39389564/

10-11 02:13