我的数据网格在itemsSource中有一个组列表:
public class Group : INotifyPropertyChanged
{
public Group() { }
public Group(int groupID, string groupName)
{
this.GroupID = groupID;
this.GroupName = groupName;
}
private int _groupID;
public int GroupID
{
get { return _groupID; }
set
{
_groupID = value;
OnPropertyChanged("GroupID");
}
}
private string _groupName;
public string GroupName
{
get { return _groupName; }
set
{
_groupName = value;
OnPropertyChanged("GroupName");
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged(string property)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(property));
}
}
}
但是我意识到当我编辑单元格时,我需要按Enter键从Group类中触发OnPropertyChanged。因此,如果我只编辑单元格值,则不会触发事件,除非我按下Enter键。
当我在没有按Enter键的情况下编辑单元格值时,是否可以触发事件?
答案 0 :(得分:4)
您需要将默认的双向绑定更改为UpdateSourceTrigger =“PropertyChanged”。
来自MSDN的示例:
<TextBox Name="itemNameTextBox"
Text="{Binding Path=ItemName, UpdateSourceTrigger=PropertyChanged}" />
示例:http://msdn.microsoft.com/en-us/library/system.windows.data.binding.updatesourcetrigger.aspx
UpdateSourceTrigger绑定属性页:http://msdn.microsoft.com/en-us/library/system.windows.data.updatesourcetrigger.aspx
答案 1 :(得分:0)
您需要在xaml中使用UpdateSourcetrigger
有三种不同的类型:
答案 2 :(得分:0)
默认情况下,当焦点在行上丢失,按下“Enter”键,标记到下一行或以编程方式调用行上的提交时,WPF DataGrid将提交一行。
您获得的更多信息here