我正在使用DevExpress XPF GridControl的NewItemRow向我的数据库添加新行。如何让用户从新行输入数据。我正在使用棱镜框架。这是我的xaml
<dxg:GridControl.View>
<dxg:TableView AutoWidth="True" AllowEditing="True" NewItemRowPosition="Top">
<dxmvvm:Interaction.Behaviors>
<dxmvvm:EventToCommand EventName="RowUpdated"
Command="{Binding RowUpdateClickCommand}" CommandParameter="{Binding CurrentItem}"/>
</dxmvvm:Interaction.Behaviors>
</dxg:TableView>
</dxg:GridControl.View>
答案 0 :(得分:1)
要获取有关更新行的信息,可以将EventArgs传递给您的命令。要完成此任务,请将EventToCommand.PassEventArgsToCommand属性设置为true:
<dxmvvm:EventToCommand EventName="RowUpdated" PassEventArgsToCommand="True"
Command="{Binding RowUpdateClickCommand}"/>
要确定用户是否修改了NewItemRow,您可以将 RowEventArgs.RowHandle 与静态 GridControl.NewItemRowHandle 属性进行比较:
public class MyViewModel {
public MyViewModel() {
RowUpdateClickCommand = new DelegateCommand<RowEventArgs>(RowUpdateClick);
}
public ICommand RowUpdateClickCommand {
get;
set;
}
public void RowUpdateClick(RowEventArgs e) {
if (e.RowHandle == GridControl.NewItemRowHandle) {
//e.Row - new row is here
}
}
}
请注意,如果您不希望将事件参数传递给视图模型级别,则可以使用EventArgsConverter
进行转换。