我(还是学习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确实会更新,只有当我单击另一行时,才会将滚动条拉出视线。然后,如果我向后绘制滚动条,则会正确显示该行。我想我肯定错过了什么,有人可以给我一个暗示吗?
答案 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);
}
}