内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用
如何在DataGrid中删除选定的列(及其行)?
选择复选框和Excel记录:
CsvGrid.SelectAllCells();
foreach (var checkBox in CheckBoxes.Children.OfType<CheckBox>().Where(x => x.IsChecked == true))
{
for(int i = 0; i < CsvGrid.SelectedCells.Count; i++)
{
if (checkBox.Tag != CsvGrid.Columns[i].Header) // How to remove this Column and its lines?
}
}
ApplicationCommands.Copy.Execute(null, CsvGrid);
String result = (string) Clipboard.GetData(DataFormats.Text);
CsvGrid.UnselectAllCells();
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.FileName = "Document";
saveFileDialog.DefaultExt = ".xls";
saveFileDialog.Filter = "Excel|*.xls|Excel 2010|*.xlsx|CSV files (*.csv)|*.CSV";
saveFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
if (saveFileDialog.ShowDialog() == true)
{
File.WriteAllText(saveFileDialog.FileName, result.Replace(',', ' '));
MessageBox.Show("File created!");
}
读取CSV表。使用LumenWorks写入DataTable
using LumenWorks.Framework.IO.Csv;
DataTable csvTable = new DataTable();
using (CsvReader csvReader = new CsvReader(new StreamReader(FilePath.Text), true))
{
csvTable.Load(csvReader);
for (int i = 0; i < csvTable.Columns.Count; i++)
{
csvTable.Columns[i].ColumnName = csvTable.Columns[i].ColumnName.Replace("_", " ");
}
CsvGrid.ItemsSource = csvTable.DefaultView;
}
您可以将可见性设置为折叠:
CsvGrid.Columns[i].Visibility = Visibility.Collapsed;
更改绑定源:
WPF:
<Grid>
<DataGrid x:Name="TheGrid" ItemsSource="{Binding dataTable}">
<DataGrid.Columns>
<DataGridTemplateColumn Header="Delete">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox Tag="2" Checked="Remove_me"></CheckBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
</Grid>
代码背后:
DataTable dt1 = new DataTable();
public MainWindow()
{
InitializeComponent();
dt1 = new DataTable();
dt1.Columns.Add("1");
dt1.Columns.Add("2");
dt1.Columns.Add("3");
DataRow dr = dt1.NewRow();
TheGrid.ItemsSource = dt1.DefaultView;
}
private void Remove_me(object sender, RoutedEventArgs e)
{
CheckBox checkbox = (CheckBox)sender;
dt1.Columns.Remove(checkbox.Tag.ToString())
TheGrid.ItemsSource = null;
TheGrid.ItemsSource = dt1.DefaultView;
}
建议网络测试可使用一个组1个节点配置,根据组织多少来定测试规模;企业应用以1个组织2个节点为基础起步,保持组织内的高可用,节点数量扩展根据组织数量和交易使用量增加,一个区块链网络内建议最多不超过100个节点。谢谢您的提问