C# 如何从DataGrid(而不是DataGridView)中提取文本?

C# 如何从DataGrid(而不是DataGridView)中提取文本?,c#,.net,wpf,xaml,C#,.net,Wpf,Xaml,我使用一个DataGrid(不是DataGridView)来显示一些信息,一旦我按下一个按钮,比如说一个save按钮,我希望所有的数据都按列移动到一个列表框中 感谢你们的帮助D 编辑:(这是代码,所以我想从下面的列中读取数据) 我尝试了以下操作:MessageBox.Show(SMLDataGrid.Items[0].ToString()) 也没有.Value选项。。。或者我见过的任何类似的东西 <DataGrid x:Name="SMLDataGrid" CanUserSortColum

我使用一个DataGrid(不是DataGridView)来显示一些信息,一旦我按下一个按钮,比如说一个save按钮,我希望所有的数据都按列移动到一个列表框中

感谢你们的帮助D

编辑:(这是代码,所以我想从下面的列中读取数据) 我尝试了以下操作:
MessageBox.Show(SMLDataGrid.Items[0].ToString())
也没有
.Value
选项。。。或者我见过的任何类似的东西

<DataGrid x:Name="SMLDataGrid" CanUserSortColumns="True" CanUserAddRows="False" AutoGenerateColumns="False"
        materialDesign:DataGridAssist.CellPadding="13 8 8 8" materialDesign:DataGridAssist.ColumnHeaderPadding="8" VerticalAlignment="Top">
        <DataGrid.Columns>
            <DataGridTextColumn Binding="{Binding BaseIn}"
                Header="Base" x:Name="GrammarBaseColumn"
                EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnEditingStyle}"/>
            <DataGridTextColumn Binding="{Binding PastIn}"
                Header="Past Form" x:Name="GrammarPastColumn"
                EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnEditingStyle}"/>
            <DataGridTextColumn Binding="{Binding PastPIn}"
                Header="Past Participle Form" x:Name="GrammarPastPColumn"
                EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnEditingStyle}"/>
            <DataGridTextColumn Binding="{Binding IesIn}"
                Header="Plural Form" x:Name="GrammarIngColumn"
                EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnEditingStyle}"/>
            <DataGridTextColumn Binding="{Binding IngIn}"
                Header="Verb Form" x:Name="GrammarIesColumn"
                EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnEditingStyle}"/>
        </DataGrid.Columns>
    </DataGrid>

但是messagebox显示文件名+包含所有字符串的类的名称。

您可能已将DataGrid的ItemsSource属性设置为
IEnumerable
(如果没有设置,则应设置),其中
YourClass
是BaseIn、PastIn、PastPIn。。。属性已定义

您可以使用相同的方法设置列表框的ItemsSource:

listBox.ItemsSource = SMLDataGrid.ItemsSource;

var ic = SMLDataGrid.Items.OfType<YourClass>().ToList();
MessageBox.Show(ic[0].BaseIn);
listBox.ItemsSource=SMLDataGrid.ItemsSource;
var ic=SMLDataGrid.Items.OfType().ToList();
MessageBox.Show(ic[0].BaseIn);

尽管列表框没有列的概念,但根据您尝试执行的操作,您可以将列表视图与GridView一起使用:

阅读此内容并编辑您的问题,如果您不需要否决票和良好的回答,请创建一个类来保存您的所有数据。将类绑定到数据网格。当person按下Save时,将listbox绑定到类。如果保存后不希望数据进入DataGrid,请删除类与DataGrid的绑定。如果不提供更多信息,请提供您拥有的一些代码。。。
listBox.ItemsSource = SMLDataGrid.ItemsSource;

var ic = SMLDataGrid.Items.OfType<YourClass>().ToList();
MessageBox.Show(ic[0].BaseIn);