【问题标题】:Initialize record on cell enter of XamDataGrid在 XamDataGrid 的单元格输入上初始化记录
【发布时间】:2015-04-15 11:24:53
【问题描述】:

假设我们有一个包含 10 列的 XamDataGrid。

第 1 列是绑定到模型中的集合的 XamComboEditor

  • 这无法更改,数据来自服务器,并且组合的集合基于模型中的不同选择,因此非常动态。

第 2 - 10 列只是普通的字母数字字段

问题:

当您输入字母数字并开始输入时,模型已初始化,一切正常。但是,如果您转到最后一行,即未初始化的空行,并在将任何数据输入任何其他字段之前单击组合编辑器,则组合编辑器为空。

现在我很清楚为什么会发生这种情况,很明显这是由于模型尚未初始化造成的。我只是不确定解决此问题的最佳方法。

我希望 XamDataGrid 上有一个属性可以在记录初始化时进行调整,但我搜索了 Infragistics 文档和示例,但找不到任何东西。

【问题讨论】:

    标签: infragistics xamdatagrid


    【解决方案1】:

    有以下活动:

    • EditModeStarting
    • EditModeStarted
    • EditModeEnding
    • EditModeEnded

      private void OnCellEditModeStarting(object sender, EditModeStartingEventArgs args)
      {
          if (args.Cell.Field.Name == "TotalQuantity")
          {
              DataRecord record = args.Cell.Record;
      
              if (record == null)
                  return;
      
              MyGridEntry item = record.DataItem as MyGridEntry;
              // Do a thing
          }
      }
      

    您也可以回复InitializeRecord 事件。它可能因多种原因触发,例如单元格编辑,因此在响应时检查行模型的状态。所有这些事件都在父网格上,而不是任何 FieldLayouts 或 Fields。

    <i:XamDataGrid    x:Name="myGrid"
                      InitializeRecord  ="OnInitializeRecord"
                      EditModeStarting    ="OnEditModeStarting">
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-11
      • 2021-05-31
      • 1970-01-01
      • 1970-01-01
      • 2022-01-25
      • 2012-05-02
      • 1970-01-01
      相关资源
      最近更新 更多