我有一个DataGrid
,并且需要检测用户何时对一行进行了更改。我不想使用CellEditEnding
,因为每当一行获得焦点并在没有任何输入的情况下丢失它时,这个事件就会引发,以另一种方式我需要将 bool 属性绑定到在该行获得 chgangd 时设置为 true 的每一行。
问问题
2043 次
2 回答
1
以下面的代码为例,这样您就知道如何跟踪您的项目ItemSource
是否已更改(此处仅与初始值进行比较)的基本思想。
List<myItem> Items=new List<myItem>(); //your ItemSource
class myItem:ObservableObject //an class implement INotifyPropertyChanged interface
{
string _inititemName;
string _itemName;
bool itemChanged; //here is your indicator
myItem(string name)
{
_inititemName=itemName=name;
}
public string itemName
{
get{return _itemName;}
set
{
_itemName=vlaue;
if (_itemName!=_inititemName)
itemChanged=true;
else
itemChanged=false;
RaisePropertyChanged("itemName"); //or whatever the name of the method is that invoke OnPropertyChanged
}
}
}
于 2012-10-16T09:50:26.573 回答
0
使您的项目类的属性在修改时设置一个布尔更新标志
例如
public class MyGridItem
{
public MyGridItem(string Name)
{
this.Name = Name;
Updated = false;
}
public bool Updated {get; private set;}
private string _Name = null;
public string Name
{
get { return _Name; }
set {
if (!_Name.Equals( value ))
{
_Name = value;
Updated = true
}
}
}
}
于 2012-10-16T09:49:45.333 回答