Wie kann ich meinen Button Click so ändern, dass er immer automatisch ausgeführt wird, wenn meine TextBox nicht mehr leer ist?

Ich habe ein DataGrid bei dem ich mit MVVM die Daten beziehe. Jetzt habe ich es so gemacht das wenn ich diesen Button drücke:

<TextBlock Text="&#xE71C;" x:Key="DataGridSelectAllButtonStyle.Content"/>
                <Style x:Key="{ComponentResourceKey ResourceId=DataGridSelectAllButtonStyle, TypeInTargetAssembly={x:Type DataGrid}}"
                    TargetType="{x:Type Button}">
                    <Setter Property="Background" Value="Gray"/>
                    <Setter Property="BorderBrush" Value="White"/>
                    <Setter Property="BorderThickness" Value="0 0 1 0"/>
                    <EventSetter Event="Click" Handler="ClearButton_Click"/>
                    <Setter Property="Content">
                        <Setter.Value>
                            <StackPanel Background="Gray" Height="40" Width="11">
                                <Separator Background="White" Margin="0,17,-1,0"/>
                                <TextBlock Background="{x:Null}" HorizontalAlignment="Center" Height="13"  Margin="0 5 0 0"
                            FontFamily="Segoe MDL2 Assets" FontWeight="Light" FontSize="7"
                            Text="{Binding Text, Source={StaticResource DataGridSelectAllButtonStyle.Content}}">
                                </TextBlock>
                            </StackPanel>
                        </Setter.Value>
                    </Setter>
                </Style>

Und meine TextBoxen nicht leer sind sie dann automatisch geleert werden. Wenn jedoch die TextBoxen nicht leer sind und ich denn Button noch nicht gedrückt habe soll sich der Content von dem Button ändern zu einem Kreuz. Das habe ich bereits jedoch nur bedingt geschafft denn jetzt ist es bei mir so das nur wenn ich auf denn Button Clicke der Content geändert wird und nicht automatisch sobald er erkennt die TextBoxen sind nicht mehr leer. Also mein Ziel ist es das wenn die TextBoxen leer sind das standard Symbol (Content) angezeigt wird und sobald eine der TextBoxen nicht mehr leer sind soll sich der Button Content automatisch in ein Kreuz ändern und nicht wie jetzt das es nur manuell über das Klicken auf den Button funktioniert und sobald alle TextBoxen wieder leer sind soll das Anfangs Symbol(Content gezeigt werden). Und hier ist erstmal mein Code Behind womit ich denn Button content per Click event ändere:

private void ClearButton_Click(object sender, RoutedEventArgs e)
        {
            if (!String.IsNullOrEmpty(IDSearcBox.Text))
            {
                if (sender is FrameworkElement element)
                {
                    TextBlock textBlock = (TextBlock)element.FindResource("DataGridSelectAllButtonStyle.Content");
                    textBlock.Text = textBlock.Text == "\xE711"
                        ? "\xE71C"
                        : "\xE711";
                }
            }
        }
Computer, C Sharp, XAML, Windows Presentation Foundation
Wie kann ich in WPF diese Weißen Felder entfernen?

Guten tag ich habe in meinem WPF Programm jetzt irgendwie solche weißen Felder:

Also das ganz links und das zwischen dem Header und denn Cells,wie kriege ich die Weg?

Mein Code:

<StackPanel Orientation="Vertical" Background="Red">
        <DataGrid Height="438" x:Name="data" Width="801" >
            <DataGrid.Resources>
                <Style TargetType="{x:Type DataGridColumnHeader}">
                    <Setter Property="Background" Value="#292F3B"/>
                    <Setter Property="Foreground" Value="LightBlue"/>
                    <Setter Property="FontWeight" Value="SemiBold"/>
                    <Setter Property="Height" Value="30"/>
                    <Setter Property="FontSize" Value="15"/>
                    <Setter Property="BorderThickness" Value="0,0,2,0" />
                    <Setter Property="BorderBrush" Value="#333333"/>
                    <Setter Property="Padding" Value="10 0 0 0"/>
                    <Style.Triggers>
                        <Trigger Property="IsMouseOver" Value="True">
                            <Setter Property="Background" Value="#454F5D"/>
                        </Trigger>
                    </Style.Triggers>
                    
                </Style>
                <Style TargetType="{x:Type DataGrid}">
                    <Setter Property="Background" Value="#20262E"/>
                </Style>


                <Style TargetType="{x:Type DataGridCell}">
                    <Setter Property="Background" Value="#292F3B"/>
                    <Setter Property="Foreground" Value="LightBlue"/>
                    <Setter Property="BorderThickness" Value="0,0,2,0" />
                    <Setter Property="BorderBrush" Value="#333333"/>
                    <Setter Property="Margin" Value="0 5 0 0"/>
                    <Style.Triggers>
                        <Trigger Property="IsMouseOver" Value="True">
                            <Setter Property="Background" Value="#454F5D"/>
                        </Trigger>
                    </Style.Triggers>
                </Style>
            </DataGrid.Resources>
            
            
            
            <DataGrid.Columns>
                <DataGridTextColumn Header="user" Binding="{Binding user}"   Width="*"/>
                <DataGridTextColumn Header="User1" Binding="{Binding user1}" Width="*"/>
                <DataGridTextColumn Header="User2" Binding="{Binding user2}" Width="*"/>
                <DataGridTextColumn Header="User3" Binding="{Binding user3}" Width="*"/>
                <DataGridTextColumn Header="User4" Binding="{Binding user4}" Width="*"/>
            </DataGrid.Columns>
        </DataGrid>
    </StackPanel>
Bild zum Beitrag
Computer, Informatik, Windows Presentation Foundation
C# 2D Array erste Zeile entfernen?

Guten Tag ich bin zurzeit an einem Projekt und die erste zeile soll aus dem Array gelöscht werden.

das ist meine Ausgabe und die erste zeile soll komplett gelöscht werden.

und das ist ein teil meines Codes:

for (int i = 0; i < sArrEinkauf.GetLength(0)-1; i++)
            {
                if (sArrEinkauf[i, 0] == sArrEinkauf[i + 1, 0]) 
                {
                    int summe = 0;
                    int temp = 0;
                    int temp2 = 0;

                    temp = Convert.ToInt32(sArrEinkauf[i, 4]);                     temp2 = Convert.ToInt32(sArrEinkauf[i + 1, 4]);                     summe = temp + temp2;                     sArrEinkauf[i + 1, 4] = summe.ToString();                     sArrEinkauf[i, 0] = "X";                 }

            }             string[,] tmparray = new string[0,0];             string[] temparray = new string[5];             for (int i = 0; i < sArrEinkauf.GetLength(0); i++)             {                 Console.WriteLine("\n");                 for (int j = 0; j < sArrEinkauf.GetLength(1); j++)                 {                                          sArrEinkauf[i, 0] = "A" + sArrEinkauf[i, 0];

                    Console.Write(sArrEinkauf[i, j] + "\t");
                }
            }

Bild zum Beitrag
Computer, Schule, programmieren, Array, C Sharp, Informatik