Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Linq to Sql][Northwind][WPF] Dodać, usunąć zmodyfikować - How to?
asidro
post 5.09.2010, 09:09:37
Post #1





Grupa: Zarejestrowani
Postów: 32
Pomógł: 1
Dołączył: 24.07.2010

Ostrzeżenie: (30%)
XX---


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.
Go to the top of the page
+Quote Post
prachwal
post 5.09.2010, 12:45:34
Post #2





Grupa: Zarejestrowani
Postów: 171
Pomógł: 18
Dołączył: 13.03.2009
Skąd: lublin

Ostrzeżenie: (0%)
-----


to nie ta bajka
to jest forum o PHP smile.gif
Go to the top of the page
+Quote Post
masiakla
post 5.09.2010, 21:11:08
Post #3





Grupa: Zarejestrowani
Postów: 80
Pomógł: 17
Dołączył: 4.09.2010
Skąd: far far away

Ostrzeżenie: (0%)
-----


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.

Ten post edytował masiakla 5.09.2010, 21:20:44
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.06.2025 - 06:45