账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    Winform的DataGridView如何绑定对象中的对象?
    87
    0

    有一个list要放入DataGridView中,形式是这样的:

    class User{
        int id;
        string name;
        int age;
        Job job;
    }
    class Job{
        int id;
        string name;
        int userId;
    }

    把读取出的User类型的list直接放入DataGridView无法显示Job相关信息。请问如何才能显示Job相关信息呢?

    1
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 在 Winform 中,你不能直接绑定对象中的对象,因为绑定是在事件发生时,当用户点击或拖动某个控件时,绑定的事件处理程序会被调用。如果你有一个对象数组,你可以通过在绑定事件处理程序中遍历数组,将每个对象绑定到一个控件上。

      以下是一个简单的例子:

      ```csharp private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e) { // 获取当前单元格 DataGridViewRow row = dataGridView1.Rows[e.RowIndex];

      // 获取当前单元格的数据
      DataGridViewCell cell = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex];
      
      // 检查当前单元格的数据类型
      if (cell.Type == DataGridViewCellType.Text)
      {
          // 获取绑定的对象
          object value = cell.Value;
      
          // 这里假设你有一个字符串数组,你可以遍历这个数组,将每个字符串绑定到一个控件上
          // 比如:
          for (int i = 0; i < value.Length; i++)
          {
              string cellValue = value[i];
              dataGridView1.Rows[row.RowIndex].Cells[i].Value = cellValue;
          }
      }
      

      } ```

      在这个例子中,当用户在某个单元格中输入文本时,这个文本将被绑定到该单元格的控件上。如果你有一个字符串数组,你可以遍历这个数组,将每个字符串绑定到一个控件上。

      请注意,这个例子假设你的对象数组是动态的,你可以在事件处理程序中获取这个数组的值。如果你的对象是静态的,你可能需要在绑定事件处理程序之前,先初始化这些对象。

    更多回答
    网站公告
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部