在行插入网格后从NewItemRow获取数据

时间:2017-06-19 21:23:46

标签: wpf datagrid devexpress devexpress-wpf newrow

我正在使用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>

1 个答案:

答案 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

进行转换。