C# 如何在WPF Gridview中获取选中的行值

C# 如何在WPF Gridview中获取选中的行值,c#,wpf,datagridview,C#,Wpf,Datagridview,我在WPF中创建了两列gridview。一个用于DataGridTextColumn,另一个用于DataGridCheckBoxColumn <DataGrid AutoGenerateColumns="False" Name="dataGrid1"> <DataGrid.Columns> <DataGridTextColumn Header="MyString" Binding="{Binding MyString}" />

我在WPF中创建了两列gridview。一个用于DataGridTextColumn,另一个用于DataGridCheckBoxColumn

<DataGrid AutoGenerateColumns="False" Name="dataGrid1">

 <DataGrid.Columns>
                <DataGridTextColumn Header="MyString" Binding="{Binding MyString}" />
                <DataGridCheckBoxColumn Header="MyBool" Binding="{Binding MyBool}" />
            </DataGrid.Columns>
        </DataGrid>

现在,我想得到checked items文本值

var SelectedList = new List<checkedBoxIte>();
            StringBuilder aa = new StringBuilder();
            for (int i = 0; i < dataGrid1.Items.Count; i++)
            {
                var item = dataGrid1.Items[i];
                var mycheckbox = dataGrid1.Columns[1].GetCellContent(item) as CheckBox;
                var myTextBox = dataGrid1.Columns[0].GetCellContent(item) as TextBox;
                if ((bool)mycheckbox.IsChecked)
                {
                    SelectedList.Add(item[i]);
                    //aa.Append(myTextBox.Text);
                }
            }
var SelectedList=newlist();
StringBuilder aa=新的StringBuilder();
对于(int i=0;i

如何才能做到这一点。

您不应该使用
文本框,而应该使用,因为
DataGridView
实际上包含在
WPF

因此,请按如下方式更改代码:

var SelectedList = new List<checkedBoxIte>();
StringBuilder aa = new StringBuilder();
for (int i = 0; i < dataGrid1.Items.Count; i++)
{
    var item = dataGrid1.Items[i];
    var mycheckbox = dataGrid1.Columns[1].GetCellContent(item) as CheckBox;
    var myTextBlock = dataGrid1.Columns[0].GetCellContent(item) as TextBlock;
    if ((bool)mycheckbox.IsChecked)
    {
        SelectedList.Add(item[i]);
        aa.Append(myTextBlock.Text);
    }
}
var SelectedList=newlist();
StringBuilder aa=新的StringBuilder();
对于(int i=0;i
什么不起作用?什么是
checkedBoxIte