none
Fehler in for Schleife ?? RRS feed

  • Frage

  • Hallo

    habe folgende for Schleife

    for (int i = 0; i < ContractArts_in_Member_Grid.Items.Count; i++)
                {
                    if (ContractArts_in_Member_Grid.Columns[2] == checked)
                    {
                        neu.MemberID = Convert.ToInt32(MemberIDTextBox.Text;
                        neu.ContractID = i;
                    }
                }

    er sagt mir das hinter checked) noch eine ")" erwartet wird.

    Warum ??

    danke

    Cay

    Samstag, 11. Mai 2013 10:02

Antworten

Alle Antworten

  • Weil checked in deinem Kontext wohl keine Konstante, Variable oder Eigenschaft, sondern wohl eine Methode ist.

    • Als Antwort markiert joksch_c Samstag, 11. Mai 2013 10:11
    Samstag, 11. Mai 2013 10:06
  • Hallo, ich nehme mal an das checked eine Variable oder ein Feld/Eigenschaft ist. checked ist in C#ein Schlüsselwort:
    http://msdn.microsoft.com/de-de/library/74b4xzyw.aspx

    Um checked doch als Namen nutzen zu können, musst du ein @ davor setzen:

     if (ContractArts_in_Member_Grid.Columns[2] == @checked)

    Bei der Deklaration übrigens auch schon.


    <Code:13/> - Koopakiller [kuːpakɪllɐ]
    Webseite | Code Beispiele | Facebook | Snippets
    Wenn die Frage beantwortet ist, dann markiert die hilfreichsten Beiträge als Antwort und bewertet die Beiträge. Danke.
    Einen Konverter zwischen C# und VB.NET Code gibt es hier.

    • Als Antwort vorgeschlagen Stefan Hoffmann Samstag, 11. Mai 2013 10:10
    • Als Antwort markiert joksch_c Samstag, 11. Mai 2013 10:11
    Samstag, 11. Mai 2013 10:06
    Moderator
  • Hallo,

    ich wollte eigentlich was ganz anderes aber eure antworten sind natürlich richtig :)

    Ich habe ein Datagrid in dem ich aus einer SQL Datenbank die Columes auslese und dann zusätzlich eine Checkbox mit gebe "DataGridTemplateColumn.CellTemplate" nun wollte ich diese Checkbox auslesen ob sie checked ist oder nicht.

    Jemand eine Ahnung wie ich das hinbekomme, da mein weg ja völlig falsch war :)

    Es geht um das Value dieser erzeugten Checkbox wie komme ich da drann ??

    grüße

    Cay

    • Bearbeitet joksch_c Samstag, 11. Mai 2013 12:16
    Samstag, 11. Mai 2013 10:25
  • Wenn du im Codebehind eine Auflistung hast, an die du das DG bindest. Dann könntest du die markierte Zeile (Row) in ein Objekt dieser Klasse parsen und dann entsprechend ausfragen. In nachfolgendem Thread findest du ein Codebeispiel:
    http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/cab90c74-9b49-4237-b49e-485d7c4958ed/

    Wenn du dagegen das DG direkt an die DB bindest, dann fällt mir nur ein den Wert nochmal direkt aus der DB abzufragen. Vielleicht gibt es einen besseren Weg, kennen tue' ich jedoch keinen.

    PS: Was ich gerade noch gefunden habe:
    http://stackoverflow.com/questions/3368302/wpf-datagrid-read-a-cell-value


    <Code:13/> - Koopakiller [kuːpakɪllɐ]
    Webseite | Code Beispiele | Facebook | Snippets
    Wenn die Frage beantwortet ist, dann markiert die hilfreichsten Beiträge als Antwort und bewertet die Beiträge. Danke.
    Einen Konverter zwischen C# und VB.NET Code gibt es hier.

    • Als Antwort markiert joksch_c Sonntag, 12. Mai 2013 07:41
    Samstag, 11. Mai 2013 12:59
    Moderator
  • Hi,

    gute antworten ab ich bin glaube ich zu doof das um zusetzen.

    Ich bin nun übergegangen und habe in der Datenbank ein BIT Feld hinzugefügt das ich dann mit

    <DataGridCheckBoxColumn Header="Aktiv" Binding="{Binding Path=ConBit}" />  

    eingefügt habe.

    das klappt auch wunderbar aber nun wieder meine dumme Frage wie komme ich an das Value ob dieses angeklickt ist oder nicht ??

    Sorry

    Cay

    PS: Bei mir gibt es dieses .Row nicht

    foreach (DataRowView row in dgLista.SelectedItems)
    {
        string text = row.Row.ItemArray[index].ToString();
    }


    • Bearbeitet joksch_c Sonntag, 12. Mai 2013 09:23
    Sonntag, 12. Mai 2013 07:40
  • Ich habe jetzt eine funktionierende Lösung gefunden:
                foreach(var item in dg.Items)
                {
                    bool? isChecked = (dg.Columns[2].GetCellContent(item) as CheckBox).IsChecked;
                }
    Es werden nach wie vor alle Elemente durch iteriert und dann das Value der Spalte (3, Index: 2) abgerufen. Bei diesem Objekt handelt es sich um eine CheckBox.

    <Code:13/> - Koopakiller [kuːpakɪllɐ]
    Webseite | Code Beispiele | Facebook | Snippets
    Wenn die Frage beantwortet ist, dann markiert die hilfreichsten Beiträge als Antwort und bewertet die Beiträge. Danke.
    Einen Konverter zwischen C# und VB.NET Code gibt es hier.

    • Als Antwort markiert joksch_c Montag, 13. Mai 2013 09:38
    Sonntag, 12. Mai 2013 12:43
    Moderator
  • Super Danke,

    genau was ich wollte

    grüße

    Cay

    Montag, 13. Mai 2013 09:38