请问关于c的具体应用场景有哪些?
- 内容介绍
- 文章标签
- 相关推荐
本文共计704个文字,预计阅读时间需要3分钟。
为了从TXT文件中获取字符串数组,并使用WPF的DataGrid显示,以下是一个简化的步骤和代码示例:
步骤:
1.读取TXT文件,获取字符串数组。
2.在XAML中定义DataGrid,并设置适当的属性。
3.在代码中绑定数据到DataGrid。
代码示例:
xml
csharp// C#public partial class MainWindow : Window{ public MainWindow() { InitializeComponent(); LoadData(); }
private void LoadData() { string[] data=File.ReadAllLines(path_to_your_file.txt); DataList=new ObservableCollection(data); }
public ObservableCollection DataList { get; set; }}
解释:- 在XAML中,`DataGrid`的`ItemsSource`属性绑定到`DataList`,这是在代码中定义的`ObservableCollection`。- `DataGrid`包含一个`DataGridTextColumn`,用于显示字符串数组中的每个项目。- 在代码中,`LoadData`方法读取TXT文件中的所有行,并将它们存储在`DataList`中。`ObservableCollection`用于实现数据的双向绑定。
我需要从我从txt获得的字符串数组的集合中构建和显示 WPF数据网格.问题是我不知道先验的是列数,即单个数组中的项目数.所以我在我的xaml中定义< DataGrid Grid.Row =“2”ItemsSource =“{Binding Path = Rows}”/>我试图在我的视图模型中填充它,但我不能简单地将我的数组的集合(Observable Collection)作为项目源,因为datagrid将只显示空行.
我也可以使用其他方法而不是Observable集合,因为我使用相同的方法生成我的数组
这是我的Observable Collection:
ObservableCollection<string[]> Rows = new ObservableCollection<string[]>;
在这个方法中我填写了集合
foreach(ListViewItem item in wsettings.lista) { TextBlock line = item.Content as TextBlock; string txt = line.Text; string[] x = txt.Split(stringSeparators, StringSplitOptions.None); Rows.Add(x); }
请不要介意分手前的第一部分.我从我之前使用的文本块的列表视图中获取数据(我有我的理由).
EDIT1:使代码更具可读性
EDIT2:标题必须是用户必须设置的组合框
.Net中有DataTable class.它的主要目的是与关系数据库进行通信,但它可以很好地用于存储,显示和编辑表格数据(例如,读取和显示.csv / Excel文件 – > wpf中的DataTable DataGrid,WinForms中的DataTable DataGridView).
DataTable列(DataColumn)可以在运行时添加/删除,DataGrid为它们自动生成列(DataGridColumn)(默认情况下启用),使用标题的Name属性. DataTable也支持开箱即用的排序和过滤.
注意:分配新的ItemsSource时,DataGrid不会清除列.因此可以有一些预定义的列并使用自动生成.
注意:默认情况下,DataGrid会创建DataGridTextColumns.如果需要更复杂的模板,可以通过AutoGeneratingColumn事件拦截该过程(see example)
这是一个例子:
码
public class MyViewModel { public DataTable Test { get; set; } } public MyWindow() { InitializeComponent(); var vm = new MyViewModel { Test = new DataTable { Columns = {"A", "B", "C"} } }; this.DataContext = vm; }
XAML
<DataGrid AutoGenerateColumns="True" ItemsSource="{Binding Path=Test.DefaultView}"> <DataGrid.Columns> <DataGridTextColumn Header="#"/> </DataGrid.Columns> </DataGrid>
结果(我输入了一些值)
本文共计704个文字,预计阅读时间需要3分钟。
为了从TXT文件中获取字符串数组,并使用WPF的DataGrid显示,以下是一个简化的步骤和代码示例:
步骤:
1.读取TXT文件,获取字符串数组。
2.在XAML中定义DataGrid,并设置适当的属性。
3.在代码中绑定数据到DataGrid。
代码示例:
xml
csharp// C#public partial class MainWindow : Window{ public MainWindow() { InitializeComponent(); LoadData(); }
private void LoadData() { string[] data=File.ReadAllLines(path_to_your_file.txt); DataList=new ObservableCollection(data); }
public ObservableCollection DataList { get; set; }}
解释:- 在XAML中,`DataGrid`的`ItemsSource`属性绑定到`DataList`,这是在代码中定义的`ObservableCollection`。- `DataGrid`包含一个`DataGridTextColumn`,用于显示字符串数组中的每个项目。- 在代码中,`LoadData`方法读取TXT文件中的所有行,并将它们存储在`DataList`中。`ObservableCollection`用于实现数据的双向绑定。
我需要从我从txt获得的字符串数组的集合中构建和显示 WPF数据网格.问题是我不知道先验的是列数,即单个数组中的项目数.所以我在我的xaml中定义< DataGrid Grid.Row =“2”ItemsSource =“{Binding Path = Rows}”/>我试图在我的视图模型中填充它,但我不能简单地将我的数组的集合(Observable Collection)作为项目源,因为datagrid将只显示空行.
我也可以使用其他方法而不是Observable集合,因为我使用相同的方法生成我的数组
这是我的Observable Collection:
ObservableCollection<string[]> Rows = new ObservableCollection<string[]>;
在这个方法中我填写了集合
foreach(ListViewItem item in wsettings.lista) { TextBlock line = item.Content as TextBlock; string txt = line.Text; string[] x = txt.Split(stringSeparators, StringSplitOptions.None); Rows.Add(x); }
请不要介意分手前的第一部分.我从我之前使用的文本块的列表视图中获取数据(我有我的理由).
EDIT1:使代码更具可读性
EDIT2:标题必须是用户必须设置的组合框
.Net中有DataTable class.它的主要目的是与关系数据库进行通信,但它可以很好地用于存储,显示和编辑表格数据(例如,读取和显示.csv / Excel文件 – > wpf中的DataTable DataGrid,WinForms中的DataTable DataGridView).
DataTable列(DataColumn)可以在运行时添加/删除,DataGrid为它们自动生成列(DataGridColumn)(默认情况下启用),使用标题的Name属性. DataTable也支持开箱即用的排序和过滤.
注意:分配新的ItemsSource时,DataGrid不会清除列.因此可以有一些预定义的列并使用自动生成.
注意:默认情况下,DataGrid会创建DataGridTextColumns.如果需要更复杂的模板,可以通过AutoGeneratingColumn事件拦截该过程(see example)
这是一个例子:
码
public class MyViewModel { public DataTable Test { get; set; } } public MyWindow() { InitializeComponent(); var vm = new MyViewModel { Test = new DataTable { Columns = {"A", "B", "C"} } }; this.DataContext = vm; }
XAML
<DataGrid AutoGenerateColumns="True" ItemsSource="{Binding Path=Test.DefaultView}"> <DataGrid.Columns> <DataGridTextColumn Header="#"/> </DataGrid.Columns> </DataGrid>
结果(我输入了一些值)

