1

我正在使用 DevExpress XPF GridControl 的 NewItemRow 向我的数据库添加新行。如何从新行中获取用户输入的数据。我正在使用棱镜框架。这是我的xml

         <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>
4

1 回答 1

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转换它们

于 2017-06-20T07:21:39.640 回答