Jeg prøver at lære C# og xaml i WPF, men jeg er ret ny i det. Så håber at der er nogle der kan hjælpe mig, da jeg ikke helt forstår forbindelserne. Jeg laver det i Visual Studio 2010.
Jeg vil gerne lave en databinding fra en SQL database til textboxe i WPF. Foreløbig har jeg fået en forbindelse op at køre med at loade data i et gridview, men jeg vil vise søgeresultatet i forskellige textboxe. Skal jeg så lave databinding til hver enkelt textbox og hvordan gør jeg det? Skal det være til binding path?
Her er min kode til at vise data i gridview grid1:
Er det ét eller flere søgeresultater du vil binde til tekst-boksene? For hvis der altid kun er ét søgeresultat, kan du vel bare indsætte:
grid2.DataContext = query.FirstOrDefault();
i metoden 'btnSoegPatienter_Click'. Altså f.eks:
var lstRes = query.ToList(); dataGrid1.ItemsSource = lstRes; grid2.DataContext = lstRes.FirstOrDefault();
Hvis der kan være flere søgeresultater og du derfor gerne ønsker x antal grid2'er, kan du proppe en ItemsControl rundt om grid2 og sætte DataContext på den i stedet - ligesom du gør med dataGrid1.
Hej CS Mange tak for svar. Jeg ved ikke om jeg har forstået det helt, men i hvert fald ledte ItemsControl og din kode mig på sporet. Dog har jeg så fået et andet problem, da søgeresultatet bliver vist sådan
{Fornavn=bla bla, Efternavn=bla bla, Køn=bla bla}
Og det var jo ikke meningen - hvor går jeg mon galt i databindingen? Jeg har lavet Itemscontrol omkring mit grid der har tekstbokse, men søgeresultatet bliver vist som kode.
Jeg glemte at sige du jo også kan udvide din ItemsControl med ItemsPanel, På den måde kan du bestemme præcist hvordan dine søge-resultater skal listes. Så hvis du f.eks. tilføjer ItemsPanel som vist nedenfor, vil dine søge-resultater komme efter hinanden vertikalt:
Mange tak for dit svar. Jeg beklager at jeg ikke har vendt tilbage før nu, men jeg kan desværre ikke teste det derhjemme.
Jeg er sikker på at din løsning virker, men jeg har foreløbig nogle problemer med exceptions. Jeg skriver nok senere, hvis jeg får det til at virke. Men jeg er som sagt ikke nogen haj til det. Din hjælp til Itemscontrol er meget værdsat :-)
Nu har jeg fået det til at virke med Itemscontrol. :-)
Min exception var for øvrigt at jeg skulle binde Mode i Oneway og ikke i Twoway
Mange tak for din hjælp. Jeg er ikke helt sikker på hvordan det fungere med pointgivningen. Men jeg tror det er noget med at du skal give et svar og så kan jeg give dig point.
Det lyder rigtig godt. Og ja, som default er Mode = TwoWay for en binding. Så ja, du har helt ret, den kommer til at brokke sig når du kører programmet, da du binder en TextBox til en anonym type (altså new { T_Patient.Fornavn, T_Patient.Efternavn, T_Patient.Køn }). For man kan ikke ændre properties i anonyme typer (prøver du f.eks. at skrive noget i Fornavn-TextBox'en, vil den prøve at sætte Fornavn i den anynonyme type, til det du skriver - men det kan den jo så ikke).
Så det kan du løse ved at sætte Mode = OneWay på bindingen ja, eller bruge en Label/TextBlock i stedet for en TextBox.
Jeg samler ikke på point, så læg bare et svar selv du kan acceptere. :)
/CS
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.