需要帮助:DataGridCheckBoxColumn双向工作只有单向

时间:2016-10-20 22:00:04

标签: wpf 2-way-object-databinding

我(还是学习wpf ..)制作了一个DataGrid,第一列显示信号是否启用。

在xaml中:

    <DataGrid.Columns> ...
      <DataGridCheckBoxColumn Width ="30" Header="" IsReadOnly="False" Binding="{Binding IsEnabled, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
    </DataGrid.Columns>

DataGrid的ItemSouce已正确设置并与ObservableCollection<Signal> signalList列表中的数据绑定。一切都在DataGrid中正确显示。所以这里从signalList到DataGrid的绑定工作正常。

另一方面,我希望在每次更改signalList时,DataGrid都可以自动更新。但是,如果我这样做

signalList[0].IsEnabled = true;

DataGrid没有更新。我搜索了很多,但仍然找不到答案。

我错过了什么吗? THX。

EDIT1:

DataGrid确实会更新,只有当我单击另一行时,才会将滚动条拉出视线。然后,如果我向后绘制滚动条,则会正确显示该行。我想我肯定错过了什么,有人可以给我一个暗示吗?

1 个答案:

答案 0 :(得分:0)

我在Aybe和gavin的帮助下解决了这个问题。为了记录,我在这里添加我的代码:

类信号:INotifyPropertyChanged

{
...
    private bool isEnabled;
    public bool IsEnabled
    {
      get { return isEnabled; }
      set { isEnabled = value; OnPropertyChanged(new PropertyChangedEventArgs("IsEnabled"));}
    }

public event PropertyChangedEventHandler PropertyChanged;
public void OnPropertyChanged(PropertyChangedEventArgs e)
{
  if (PropertyChanged != null)
    PropertyChanged(this, e);
}
}