从突出显示的行返回多个值

发布于 2025-01-04 09:25:33 字数 357 浏览 0 评论 0原文

我需要从数据网格中突出显示的行返回多个单元格,但遇到了一些困难。

当选择更改时,我将获取所选值:

private void dg_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
value = dg.SelectedValue.To_String();
....
}

并且在 XAML 中,它绑定到所选值路径,

<DataGrid SelectedValuePath=somevalue ...

我将如何对行中的多个项目执行此操作。返回的某个值是行中的唯一单元格。

I need to return multiple cells from a highlighted row in a datagrid and am having some difficulties.

When the selection is changes I am grabbing the selected value:

private void dg_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
value = dg.SelectedValue.To_String();
....
}

And in the XAML it is bound to the selected value path

<DataGrid SelectedValuePath=somevalue ...

How would I do this for multiple items in the row. The somevalue being returned is a unique cell in the row.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

孤独患者 2025-01-11 09:25:33

这里

private void selectedRowsButton_Click(object sender, System.EventArgs e)
{
    Int32 selectedRowCount =
        dataGridView1.Rows.GetRowCount(DataGridViewElementStates.Selected);
    if (selectedRowCount > 0)
    {
        System.Text.StringBuilder sb = new System.Text.StringBuilder();

        for (int i = 0; i < selectedRowCount; i++)
        {
            sb.Append("Row: ");
            sb.Append(dataGridView1.SelectedRows[i].Index.ToString());
            sb.Append(Environment.NewLine);
        }

        sb.Append("Total: " + selectedRowCount.ToString());
        MessageBox.Show(sb.ToString(), "Selected Rows");
    }
}

基本上它归结为获取选定的行而不是选定的值。

我还建议使用 sender 而不是 dg,因为这样绑定会更松散。即,将 sender 转换为 dg 类型,然后使用转换结果而不是 dg

From here:

private void selectedRowsButton_Click(object sender, System.EventArgs e)
{
    Int32 selectedRowCount =
        dataGridView1.Rows.GetRowCount(DataGridViewElementStates.Selected);
    if (selectedRowCount > 0)
    {
        System.Text.StringBuilder sb = new System.Text.StringBuilder();

        for (int i = 0; i < selectedRowCount; i++)
        {
            sb.Append("Row: ");
            sb.Append(dataGridView1.SelectedRows[i].Index.ToString());
            sb.Append(Environment.NewLine);
        }

        sb.Append("Total: " + selectedRowCount.ToString());
        MessageBox.Show(sb.ToString(), "Selected Rows");
    }
}

Basically it boils down to getting the selected row rather than the selected value.

I would also suggest using sender instead of dg since it will be more loosely bound that way. i.e. cast sender to the type of dg and then use the result of the cast instead of dg.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文