0
我有一個數據網格3列,它綁定到一個具有3個屬性的類的集合。 我想添加一個新行,因爲一行正在開始編輯。現在默認的WPF行爲是:鍵入整行,然後單擊輸入或失去焦點添加新行。我想要在當前行編輯BEGINS時添加行。wpf datagrid行編輯開始事件添加新行
似乎沒有任何行編輯開始事件。我可以鎖定並以編程方式添加空白人即新行。
有沒有這樣做的少hacky和優雅wya?
<DataGrid ItemsSource="{Binding Team}">
<DataGrid.Columns>
<DataGridTextColumn Header="Name" Binding="{Binding Name}"/>
<DataGridTextColumn Header="Number" Binding="{Binding Number}" />
<DataGridTextColumn Header="Gender" Binding="{Binding Gender}"/>
</DataGrid.Columns>
</DataGrid>
視圖模型:
public class WindowViewModel2:INotifyPropertyChanged
{
private ObservableCollection<Person> team;
public ObservableCollection<Person> Team
{
get { return team; }
set
{
team = value;
OnPropertyChanged();
}
}
public WindowViewModel2()
{
team=new ObservableCollection<Person>();
Team.Add(new Person(){Name="P" ,Gender="M",Number="123"});
}
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = "")
{
var handler = PropertyChanged;
if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName));
}
public event PropertyChangedEventHandler PropertyChanged;
}
類: 公共類Person:INotifyPropertyChanged的 {
public string Name { get; set; }
public string Number { get; set; }
public string Gender { get; set; }
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = "")
{
var handler = PropertyChanged;
if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName));
}
public event PropertyChangedEventHandler PropertyChanged;
}