C# 如何从DataGrid(而不是DataGridView)中提取文本?
我使用一个DataGrid(不是DataGridView)来显示一些信息,一旦我按下一个按钮,比如说一个save按钮,我希望所有的数据都按列移动到一个列表框中 感谢你们的帮助D 编辑:(这是代码,所以我想从下面的列中读取数据) 我尝试了以下操作: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
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);