Я работаю с Visual Studio 2019, C # и WPF. Я пытаюсь удалить заголовок таблицы динамически, но у меня есть некоторые проблемы.
Описание метода проблемы:
У меня есть метод, чтобы выбрать имя пакета данных и создать Datatable с ними в качестве заголовков Datatable. Это до сих пор прекрасно работает, проблема заключается в удалении старых заголовков таблицы при втором или третьем запуске. Я протестировал несколько разных способов удаления заголовков, но у меня ничего не получилось.
Когда я использую «Первая попытка» (показать метод «Проблема»), ничего не будет удалено, потому что в моем tableforDataStream нет никаких столбцов (наблюдалось отладчиком при запуске второго метода). Но когда я изменяю tableforDataStream на свой DataGrid (dgTable3), у меня там есть 3 столбца, и я не могу добавить новые столбцы в свой tableforDataStream (например, посмотреть последнее изображение левой таблицы).
Вторая и третья попытки почти такие же, как и первая попытка, за исключением того, что я могу проверить, остались ли еще какие-то столбцы. Я уже пробовал tableforDataStream.Reset;
, но это не имеет никакого смысла, это то же самое решение, что и "Первая попытка"
Метод задачи:
private void CreateOverviewTable_Click(object sender, RoutedEventArgs e)
{
if (isConnected != 0)
{
//tableforDataStream.Columns.Clear(); <--- First try to delete the old tableforDataStream.Header
if (dgTable3.Columns.Count != 0)
{
while(dgTable3.Columns.Count > 0)
{
//tableforDataStream.Columns.RemoveAt(0); <--- Second try to delete the old tableforDataStream.Header
dgTable3.Columns.RemoveAt(0); //<--- Third try to delete the old tableforDataStream.Header
}
}
int anzZeilen = tableSelectedVar.Rows.Count;
if (anzZeilen != 0)
{
dgTable1.Visibility = Visibility.Collapsed;
dgTable3.Visibility = Visibility.Visible;
//Create an array for the data packages(VarName, SaveAddress, VarSize)
string[,] inhaltVar = new string[anzZeilen, 3];
//Copie all infos from the Variable into the array
for (int i = 0; i <= anzZeilen - 1; i++)
{
for (int j = 0; j < 3; j++)
{
inhaltVar[i, j] = tableSelectedVar.Rows[i].ItemArray[j].ToString();
}
}
//Create for every data package a column inside the tableforDataStream
for (int k = 0; k <= (inhaltVar.GetLength(0) - 1); k++)
{
try
{
//insert the VarName as tableforDataStream.Header
tableforDataStream.Columns.Add(inhaltVar[k, 0]);
}
catch (Exception exc)
{
MessageBox.Show("The variable was already send to machine");
}
}
//send Data over UDP to the machine
if (isConnected == 1)
{
SendDataToMachine(inhaltVar);
}
else
{
MessageBox.Show("Please start first the connection");
}
}
else
{
MessageBox.Show("Please insert minimum one Variable for overwatch", null, MessageBoxButton.OK, MessageBoxImage.Information);
}
}
else
{
MessageBox.Show("Please start the conection to machine");
}
}
На этом рисунке показан результат «первой попытки» при втором запуске метода, красные стрелки должны быть удалены, а зеленые стрелки должны быть там.
![enter image description here](https://i.stack.imgur.com/2cKPk.png)
Это мой графический интерфейс, когда я удаляю свою DataGrid (dgTable3), как в настоящем "методе проблемы"
![enter image description here](https://i.stack.imgur.com/QazgK.png)
РЕДАКТИРОВАТЬ: Добавить дополнительную информацию и вставить новый метод проблемы.