Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Feldinhalte einer Tabelle an Textboxen binden
leotom
myCSharp.de - Member



Dabei seit:
Beiträge: 5

Themenstarter:

Feldinhalte einer Tabelle an Textboxen binden

beantworten | zitieren | melden

Hallo Leute, seht mir bitte meine Unerfahrenheit nach, aber ich komme mit den Bindings im WPF nicht weiter. Dazu muss ich sagen, dass ich aus der "VFP-Gegend" komme und dort mit meinem Datenbank- und Tabellendenken noch sehr, sehr verhaftet bin. Dort hatte ich ähnlich wie bei WF die Möglichkeit, auf einfache Weise meine Feldinhalte aus den Tabellen an die Controlls zu binden. Vielleicht bin ich aber mit meiner alten Denke bei WPF völlig auf dem Holzweg. Dann wäre ich für eine kurze Bestätigung sehr dankbar.
Bindings an Listviews kriege ich hin. Aber ich möchte mir einen Datensatz aus einer Tabelle greifen und die einzelnen Feldinhalte in verschiedene Textboxen ausgeben. Mit dem Blättern usw. kommt dann später.
Ich bedanke mich mal schon im Voraus für eure Nachsicht und Geduld!

BG
Thomas
private Nachricht | Beiträge des Benutzers
hypersurf
myCSharp.de - Member



Dabei seit:
Beiträge: 509
Herkunft: Münster

beantworten | zitieren | melden

Kannst Du mal Deinen Code posten, dann können wir Dir mit Sicherheit helfen
private Nachricht | Beiträge des Benutzers
Wilfried
myCSharp.de - Member

Avatar #2TnJ7IKlYXgOor5sZSIA.jpg


Dabei seit:
Beiträge: 87
Herkunft: Radeberg

beantworten | zitieren | melden

Hallo,
hast du dir schon mal diesen Beitrag angesehen?: [Artikel] MVVM und DataBinding
-Wer lesen kann, ist klar im Vorteil
-Meistens sitzt der Fehler vorm Monitor
-"Geht nicht" ist keine Fehlermeldung !

GidF
private Nachricht | Beiträge des Benutzers
leotom
myCSharp.de - Member



Dabei seit:
Beiträge: 5

Themenstarter:

beantworten | zitieren | melden

@Wilfried Danke für den Link. Da hat sich jemand echt Mühe gegeben, um uns Einsteiger zu motivieren;-) Das werde ich durcharbeiten und vielleicht ist das dann ja meine lösung. Trotzdem möchte ich hypersurfs Bitte nachkommen und meinen Code hier reinstellen. Allerdings weiß ich nicht, ob ich das richtig mache. Ich versuch´s einfach mal.

<Window x:Class="BindingTest.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:BindingTest"
        mc:Ignorable="d"
        Title="Plattensammlung" Height="478.945" Width="482.512" Loaded="Window_Loaded">
    <Grid>
        <Label x:Name="label" Content="Nummer" HorizontalAlignment="Left" Margin="85,14,0,0" VerticalAlignment="Top"/>
        <TextBox x:Name="tbxNummer" HorizontalAlignment="Left" Height="24" Margin="270,18,0,0" VerticalAlignment="Top" Width="126" Text="{Binding platten.id, BindsDirectlyToSource=True, StringFormat=\{0:D\}}"/>
        <Label x:Name="label1" Content="Schallplatte" HorizontalAlignment="Left" Margin="85,56,0,0" VerticalAlignment="Top"/>
        <TextBox x:Name="tbxPlattenName" HorizontalAlignment="Left" Height="28" Margin="270,60,0,0" VerticalAlignment="Top" Width="126" Text="{Binding platten.name}"/>
        <ListView x:Name="listView" HorizontalAlignment="Left" Height="207" Margin="85,192,0,0" VerticalAlignment="Top" Width="316">
            <ListView.View>
                <GridView>
                    <GridViewColumn/>
                </GridView>
            </ListView.View>
        </ListView>
        <Label x:Name="label2" Content="Titel" HorizontalAlignment="Left" Margin="85,161,0,0" VerticalAlignment="Top"/>
        <Label x:Name="label3" Content="Regal" HorizontalAlignment="Left" Margin="85,108,0,0" VerticalAlignment="Top"/>
        <TextBox x:Name="tbxRegalNummer" HorizontalAlignment="Left" Height="30" Margin="270,108,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="126"/>
        <Button x:Name="button" Content="Abbrechen" HorizontalAlignment="Left" Height="22" Margin="355,420,0,0" VerticalAlignment="Top" Width="101" Click="button_Click"/>
        <Button x:Name="btnNeu" Content="Neu" HorizontalAlignment="Left" Height="22" Margin="26,420,0,0" VerticalAlignment="Top" Width="106" Click="btnNeu_Click"/>
        <Button x:Name="btnSpeichern" Content="Speichern" HorizontalAlignment="Left" Height="22" Margin="156,420,0,0" VerticalAlignment="Top" Width="102" Click="btnSpeichern_Click"/>

    </Grid>
</Window>



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Data;
using System.Data.SqlClient;

namespace BindingTest
{
    /// <summary>
    /// Interaktionslogik für MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void button_Click(object sender, RoutedEventArgs e)
        {
            Close();
        }

        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            SqlConnection conPlatten = new SqlConnection();
            conPlatten.ConnectionString = "Data Source=(local)\\MSSQLLocalDB; Initial Catalog=platten; Integrated Security=False";
            conPlatten.Open();
            DataSet dsPlatten = new DataSet();
            SqlDataAdapter daPlatten = new SqlDataAdapter("SELECT * FROM platten WHERE ID=1", conPlatten);
            daPlatten.Fill(dsPlatten, "Platten");
            conPlatten.Close();
            DataTable dtPlatten = dsPlatten.Tables["Platten"];

            tbxNummer.DataContext = dtPlatten;          // ab hier bin ich mir nicht mehr sicher, ob das so funktioniert - siehe die Bindings im XAML
            tbxPlattenName.DataContext = dtPlatten;
            tbxRegalNummer.DataContext = dtPlatten;
        }

        private void btnSpeichern_Click(object sender, RoutedEventArgs e)
        {

        }

        private void btnNeu_Click(object sender, RoutedEventArgs e)
        {

        }
    }
}


BG
Thomas
private Nachricht | Beiträge des Benutzers
leotom
myCSharp.de - Member



Dabei seit:
Beiträge: 5

Themenstarter:

beantworten | zitieren | melden

Hallo Wilfried, der Link hat mir nicht wirklich weitergeholfen. Ist halt doch nur sehr allgemein gehalten. Wie´s jedoch wirklich mit SQL Datenbanktabellen funktioniert, steht da nicht drin. Ich gehe also weiter auf Suche ;-)

bg
Thomas
private Nachricht | Beiträge des Benutzers
Wilfried
myCSharp.de - Member

Avatar #2TnJ7IKlYXgOor5sZSIA.jpg


Dabei seit:
Beiträge: 87
Herkunft: Radeberg

beantworten | zitieren | melden

So sollte man es auch nicht machen. Schau mal hier [Artikel] Drei-Schichten-Architektur und hier Datenzugriff aus MVVM mit Repository und UnitOfWork?
Und du solltest unbedingt MVVM einsetzen. Dein Code gehört in das ViewModel und nicht in den Code Behind.
-Wer lesen kann, ist klar im Vorteil
-Meistens sitzt der Fehler vorm Monitor
-"Geht nicht" ist keine Fehlermeldung !

GidF
private Nachricht | Beiträge des Benutzers