Laden...

Forenbeiträge von spypoke Ingesamt 4 Beiträge

19.05.2021 - 17:16 Uhr

Vielen Dank, dann werde ich mir das mal durchlesen. Somit ist mein zu lösendes Problem doch größer, als ich dachte... Ich hoffe, ich kann dann herausfinden, was der richtige Weg zu meinem Ziel ist.

19.05.2021 - 16:58 Uhr

Also wenn ich das jetzt richtig verstanden habe, dann erzeuge ich im Xaml z.B. 2 Buttons:


<Button x:Name="Button1_left" Text="ONE" Grid.Row="1" Grid.Column="0" Clicked="Button1_left_Clicked"/>
<Button x:Name="Button1_right" Text="ONE" Grid.Row="1" Grid.Column="1" Clicked="Button1_right_Clicked" />

und dann für jeden Button ein Klickereignis:


private void Button1_right_Clicked(object sender, EventArgs e)
        {
            Button1_left.BackgroundColor = Color.Red;
            Button1_right.BackgroundColor = Color.Gray;
        }

        private void Button1_left_Clicked(object sender, EventArgs e)
        {
            Button1_right.BackgroundColor = Color.Red;
            Button1_left.BackgroundColor = Color.Gray;
        }

Das funktioniert soweit schon mal. Irgendwann sollten es aber einmal 100 Buttons pro Spalte werden. Das sind dann insgesamt 200 Klickereignisse zum erstellen. Hast Du das so gemeint? Oder bin ich da wieder auf dem Holzweg?

19.05.2021 - 16:12 Uhr

Tut mir leid, da hab ich wohl die wichtigsten Informationen vergessen, sorry 🙂
Also ich arbeite mit Visual Studio 2019 und Xamarin. Die Buttons möchte ich nicht über XAML erstellen, da ich eventuell später eigene Buttons in der App erstellen will. Somit schweben jetzt auf meiner Oberfläche 12 Buttons herum, da wo ich nur einen ansprechen kann... und zwar den, den ich angeklickt habe. Er liefert mir ja seine Werte beim klicken mit, wenn ich das richtig verstanden habe. Somit kann ich dann seine Größe, Farbe usw. beim Klickereignis nach belieben wechseln. Was mir allerdings ein Rätsel ist, wie ich bei einem Klickereignis auf die Werte eines anderen Buttons zugreifen kann. Hier ein Codeausschnitt, beim erklären bin ich leider nicht so gut...


public MainPage()
        {
            InitializeComponent();

            List<string> list_r = new List<string>();

            list_r.Add("ONE");
            list_r.Add("TWO");
            list_r.Add("THREE");
            list_r.Add("FOUR");
            list_r.Add("FIVE");
            list_r.Add("SIX");

            list_r.Sort();
           
            for (int i = 0; i < list_r.Count; i++)
            {
                Button button1 = new Button(); // Creating button1
                button1.AutomationId = "right";
                button1.Text = list_r[i];
                button1.Clicked += OnButtonClicked;
                myGrid_right.Children.Add(button1);// Button der rechten Spalte hinzufügen



                Button button2 = new Button(); // Creating button2
                button2.AutomationId = "left";
                button2.Text = list_r[i];
                button2.Clicked += OnButtonClicked;
                myGrid_left.Children.Add(button2);// Button der linken Spalte hinzufügen

            }
        }


        private async void OnButtonClicked(object sender, EventArgs e)
        {
            var clickedButton = (Button)sender;

            if (clickedButton.AutomationId == "right")
            {
                    //Wenn der rechte Button gedrückt wurde, ändere Farbe des linken Buttons (z.B. SIX) auf rot
                    await Task.Delay(100);
            }
            else if (clickedButton.AutomationId == "left")
            {
                    //Wenn der linke Button gedrückt wurde, ändere Farbe des rechten Buttons (z.B. SIX) auf rot
                    await Task.Delay(100);
            }
        }

Löst man dann sowas auch mit MVVM und DataBinding ?
Danke Dir

19.05.2021 - 13:19 Uhr

Hallo,
Ich habe über eine Liste mehrere Buttons mit code-behind erstellt.
Wie ich mit dem Click Handler die Hintergrundfarbe des eigenen Buttons ändern kann ist mir klar.
Was ich gerne machen würde ist, wenn ich z.B. rechts den FIVE Button klicke, dass dann der linke FIVE Button rot wird. Und umgekehrt genau so. Also beie FIVE-Buttons wären eigentlich ein Buttonpaar, was zusammengehört.

Da ich die Buttons ja nicht mit XAML gemacht habe, weiß ich jetzt nicht, wie ich den linken FIVE Button mit dem Click Handler des rechten FIVE Buttons ansprechen kann.

Ich kann den Buttons zwar den Namen, ClassID oder auch AutomationId vergeben, aber leider hab ich keinen blassen schimmer, nach was ich googeln bzw. wie ich dieses Problem lösen soll.

Ist sowas überhaupt möglich oder muss ich sowas auf andere Art lösen?

Vielen Dank.