Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Linq to Sql][Northwind][WPF] Dodać, usunąć zmodyfikować - How to?
Forum PHP.pl > Forum > Bazy danych
asidro
Witam,

Na wstępie chciałbym poinformować że jestem kompletnie zielony w w/w technologiach.
Zrobiłem już pseudo program wyświetlający klientów z bazy danych northwind na bazie tutoriala znalezionego w sieci.



Nie mam pojęcia natomiast jak w nowym oknie zbudować formularz dodający, modyfikujący i usuwający klienta z bazy po wciśnięciu edytuj.
Wiem że porywam sie na gleboka wode ale tak najszybciej sie naucze i jest mi to bardzo potrzebne.

Wklejam trochę kodu:
  1. <Window x:Class="NorthwindApp.Window1"
  2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4. Title="Northwind Application" Height="480" Width="600">
  5. <Window.Resources>
  6.  
  7. <Style TargetType="{x:Type Ellipse}" x:Key="CustomerCircle">
  8. <Setter Property="HorizontalAlignment" Value="Left"/>
  9. <Setter Property="Fill">
  10. <Setter.Value>
  11. <LinearGradientBrush EndPoint="-0.116,-0.03" StartPoint="1.298,1.03">
  12. <GradientStop Color="black" Offset="0"/>
  13. <GradientStop Color="yellow" Offset="1"/>
  14. </LinearGradientBrush>
  15. </Setter.Value>
  16. </Setter>
  17. </Style>
  18.  
  19. <DataTemplate x:Key="ShowCustomer">
  20. <StackPanel Orientation="Horizontal">
  21. <Ellipse Style="{StaticResource CustomerCircle}" Width="40" Height="40" Margin="10 10 0 10"/>
  22. <StackPanel Margin="10">
  23. <TextBlock Text="{Binding ContactName}" FontWeight="Bold"/>
  24. <TextBlock Text="{Binding ContactTitle}" FontStyle="Italic"/>
  25. <TextBlock Text="{Binding ContactName}" FontSize="10"/>
  26. <TextBlock Text="{Binding Country}" />
  27. <TextBlock Text="{Binding CompanyName}"/>
  28. </StackPanel>
  29. </StackPanel>
  30. </DataTemplate>
  31. </Window.Resources>
  32.  
  33. <ScrollViewer>
  34. <DockPanel>
  35. <ListView DockPanel.Dock="Bottom" x:Name="TheListView"
  36. ItemTemplate="{StaticResource ShowCustomer}">
  37.  
  38. <ListView.Background>
  39. <RadialGradientBrush>
  40. <GradientStop Color="#FFF9F3F3" Offset="0"/>
  41. <GradientStop Color="#FFD3CFCF" Offset="1"/>
  42. </RadialGradientBrush>
  43. </ListView.Background>
  44. </ListView>
  45. <Menu x:Name="TheMenu" DockPanel.Dock="Top" Background="gray">
  46. <MenuItem Header="Opcje" Background="Black" FontSize="15" Foreground="White">
  47. <MenuItem x:Name="MenuItemPoland" Header="Pokaz klientow" Click="MenuItem_ShowPoland"/>
  48. <MenuItem x:Name="MenuItemEdycja" Header="Edytuj" Click="MenuItem_Edycja"/>
  49.  
  50. <MenuItem>
  51. <MenuItem.Header>
  52. <StackPanel Orientation="Horizontal">
  53. <TextBox x:Name="TextBoxSearch" Width="200" Margin="2"/>
  54. <Button Content="Wyszukaj"
  55. Click="ButtonSearch_Click"
  56. Margin="2"/>
  57. </StackPanel>
  58. </MenuItem.Header>
  59. </MenuItem>
  60. </MenuItem>
  61. </Menu>
  62.  
  63. </DockPanel>
  64. </ScrollViewer>
  65.  
  66. </Window>



i środek:
  1. USING System.Linq;
  2. USING System.Windows;
  3. USING NorthwindApp.Model;
  4. USING System.Windows.Controls;
  5. USING System.Collections.Generic;
  6.  
  7. namespace NorthwindApp
  8. {
  9. public partial class Window1 : Window
  10. {
  11.  
  12.  
  13. private NorthwindDataContext _db = new NorthwindDataContext();
  14. private IEnumerable<Customer> _customers = NULL;
  15.  
  16. public Window1()
  17. {
  18. InitializeComponent();
  19.  
  20. //DEFAULT
  21. MenuItemPoland.RaiseEvent(new RoutedEventArgs(MenuItem.ClickEvent));
  22.  
  23. }
  24.  
  25.  
  26.  
  27. void MenuItem_Edycja(object sender, RoutedEventArgs e)
  28. {
  29. Edycja window = new Edycja();
  30. window.SHOW();
  31. }
  32. private void MenuItem_ShowPoland(object sender, RoutedEventArgs e)
  33. {
  34. _customers = FROM c IN _db.Customers
  35. WHERE c.Country == "Poland"
  36. SELECT c;
  37.  
  38. TheListView.ItemsSource = _customers;
  39.  
  40.  
  41. }
  42.  
  43.  
  44.  
  45. private void ButtonSearch_Click(object sender, RoutedEventArgs e)
  46. {
  47. string searchText = TextBoxSearch.Text.ToUpper();
  48. _customers = FROM c IN _db.Customers
  49. WHERE c.ContactName.ToUpper().Contains(searchText) ||
  50. c.ContactTitle.ToUpper().Contains(searchText) ||
  51. c.CompanyName.ToUpper().Contains(searchText)
  52. SELECT c;
  53. TheListView.ItemsSource = _customers;
  54.  
  55. //makes the menu disappear appropriately after button IS clicked
  56. TheMenu.Focus();
  57. TheListView.Focus();
  58. }
  59.  
  60.  
  61. }
  62. }
  63.  



Tutorial według którego zrobiłem


Proszę o jakąkolwiek pomoc i pozdrawiam.
prachwal
to nie ta bajka
to jest forum o PHP smile.gif
masiakla
Wiesz w ogóle co to Linq, wiesz jak działa bindowanie w Wpf'ie ? Nie widzę, abyś coś bindował OneWay, więc nie wiem w czym masz problem, usuwanie/dodawanie, google na pewno zna odpowiedź, nie będę się tu rozpisywał na ten temat, bo forum tyczy się czego innego. Po za tym ja bym to zrobił zupełnie inaczej, po co to wszystko upychać w oddzielnych oknach, nie łatwiej zrobić edytowalnego listbox/listview przecież z wpfem to się robi raz dwa.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.