2015-08-04 5 views
0

У меня есть пара проблем в проекте, который мне нужно сделать.Проект на WPF и ADO.NET

  1. Проект должен был перечислить все табличные данные (аукционы) в списке, и когда пользователь хочет участвовать в торгах по определенной цене, он может выбрать ставку из списка и нажать кнопку Bid.
  2. При нажатии кнопки «Bid» необходимо увеличить значение ставки на единицу, и ему нужно написать имя пользователя, ожидающего участия.
  3. Я создал операторы обновления в событии кнопки ставки, но он не работает должным образом, он просто остается без изменений.

    Также как я могу реализовать, что кнопка ставки работает только на выбранном элементе в списке?

Мой код:

public MainWindow() 
{ 
    InitializeComponent(); 
    tmr.Interval = new TimeSpan(0, 0, 1); 
    tmr.Tick += tmr_Tick; 
    showData sd = new showData(); 
    sd.ToString(); 
    listBox1.Items.Add(sd.ToString()); 

} 


private void btn_Click(object sender, RoutedEventArgs e) 
{ 
    string user = "test"; 
    int a = +1 ; 
    using (SqlConnection conn = new SqlConnection(@" Data source=ALASAD; Initial Catalog=aukcija_Arsen_Milosev; Integrated Security = true;")) 
    { 
    conn.Open(); 
    using (SqlCommand comm = new SqlCommand("UPDATE auctions SET bidValue = @bidvalue, lastBider = @lastbider",conn)) 
    { 
     comm.Parameters.AddWithValue("@lastbider", user); 
     comm.Parameters.AddWithValue("@bidValue", a); 
     comm.ExecuteNonQuery(); 
     conn.Close(); 
    } 

    } 
    listBox1.Items.Clear(); 
    showData sd = new showData(); 
    sd.ToString(); 
    listBox1.Items.Add(sd.ToString()); 
} 

ответ

1

После шаблон MVVM следует выставить в свойствах ViewModel для пользователя и SelectedAuction. и связать свойства ListBox в XAML

XAML будет так "ListBox Items = {Binding Auctions} SelectedItem = {Binding Аукцион} />"
"Button Command = {Binding Bid} />"

И ViewModel

using MicroMvvm; 

public AuctionsViewModel : ObservableObject 
{ 
    private string user; 
    private int auction; 
    private ObservableCollection<int> auctions; 

    public string User 
    { 
     get{return user;} 
     set   
     { 
      if(user!=value) 
      { 
       user=value; 
       RaisePropertyChanged("User"); 
      }    
     } 
    } 

    public int Auction 
    { 
     get{return auction;} 
     set   
     { 
      if(auction!=value) 
      { 
       auction=value; 
       RaisePropertyChanged("Auction"); 
      }    
     } 
    } 

    public ObservableCollection<int> Auctions 
    { 
     get{return auctions;} 
     set   
     { 
      if(auctions!=value) 
      { 
       auctions=value; 
       RaisePropertyChanged("Auctions"); 
      }    
     } 
    } 

    public ICommand Bid 
    { 
     get{return new RelayCommand(BidExecute);} 
    } 

    private void BidExecute() 
    { 
     Auction++; 
     using (SqlConnection conn = new SqlConnection(@" Data source=ALASAD; Initial Catalog=aukcija_Arsen_Milosev; Integrated Security = true;")) 
     { 
      conn.Open(); 
      using (SqlCommand comm = new SqlCommand("UPDATE auctions SET bidValue = @bidvalue, lastBider = @lastbider",conn)) 
      { 
       comm.Parameters.AddWithValue("@lastbider", User); 
       comm.Parameters.AddWithValue("@bidValue", Auction); 
       comm.ExecuteNonQuery(); 
       conn.Close(); 
      } 
     } 
     Auctions.clear();   
     showData sd = new showData(); 
     Auctions.AddRange(sd.toString()); 
     RaisePropertyChanged("Auctions"); 
    } 
} 
+0

Я не использовал MVVM до сих пор, попытался установить его в VS 2013, но есть ошибка: «MvvmLightLibs" уже имеет зависимость, определенную для „CommonServiceLocator“», но если я реализуем MVVM здесь, тогда мне нужно будет изменить остальную часть проекта, правильно? Но на самом деле это выглядит красиво. Я обязательно узнаю больше о MVVM и рабочем коде в этом шаблоне. –

+0

Если вы сделаете больше проектов с WPF, вам стоит изучить шаблон MVVM. Есть несколько рамок Mvvm, чтобы сделать вещи немного проще. В проекте вы можете комбинировать стиль Windows Forms (code-behind) с MVVM, хотя это нежелательно. Дополнительная информация здесь: http://mvvmfoundation.codeplex.com/ – Origence

+0

Большое спасибо. –

Смежные вопросы