Как сделать button в listbox независимой от других для извлечения price из MSSQL server в WPF?

Как выглядит сама программаЕсть колонки в textbox, данные которых извлечены из SQL server и также есть кнопка button, но которая как я понимаю просто копируется, так вот хочу узнать как сделать кнопку to basket независимой и при нажатии выводить именно в MessageBox price, нужно это для того чтобы в дальнейшем price заносить в корзину.

MainWindow.xaml здесь Stakpanel находится внутри listbox, там всё хорошо, кроме кнопки которая просто копируется.

<StackPanel Width="250" Height="370" Margin="40,0,0,0" Background="#121212">
     <Image Source="{Binding Path=Image}" Width="250" Height="200" Stretch="Fill"/>
     <TextBlock FontSize="18" Text="{Binding Path=Name}" Foreground="#fff" Margin="15,15,0,0"/>
     <TextBlock FontSize="16" Text="{Binding Path=ShortText}" Foreground="#9C9999" Margin="15,8,15,0" TextWrapping="Wrap" Height="40"/>
      <Grid Margin="15,8,15,0">
          <Grid.ColumnDefinitions>
              <ColumnDefinition Width="*"/>
              <ColumnDefinition Width="*"/>
          </Grid.ColumnDefinitions>
          <TextBlock FontSize="14" Text="{Binding Path=Quantity}" Foreground="#fff" Grid.Column="0" HorizontalAlignment="Left" VerticalAlignment="Center"/>
          <TextBlock FontSize="18" Text="{Binding Path=Price}" Foreground="#fff" Grid.Column="1" Margin="15,0,0,0" HorizontalAlignment="Right"/>
      </Grid>
  <Button DataContext="{Binding price}" Content="To basket" FontSize="16" Background="#046902" Width="100" Height="30" Foreground="#fff" Margin="0,10,0,0" HorizontalAlignment="Center" Click="ToBasket"/>
</StackPanel>

этот код находится в самом MainWindow

    private void ToBasket(object sender, RoutedEventArgs e)
    {
        SqlCommand command = new SqlCommand("SELECT price FROM products", sqlConnection);
        sqlConnection.Open();
        SqlDataReader reader = command.ExecuteReader();
    
        if (reader.HasRows)
        {
            reader.Read();
                    
            object name = reader.GetValue(0);
            string name_category = Convert.ToString(name);
    
            MessageBox.Show(name_category);
                    
        }
        sqlConnection.Close();
   }

а здесь использую ViewModel, как бы от сюда беру только Price и всё.

using (SqlConnection Connection = new SqlConnection(sqlConnection))
            {
                Connection.Open();
                SqlCommand command = new SqlCommand(sqlItems, Connection);
                SqlDataReader reader = command.ExecuteReader();

                Items = new ObservableCollection<Item>();
                if (reader.HasRows)
                {
                    while (reader.Read())
                    {
                        byte[] image = (byte[])(reader.GetValue(0));
                        object quantity = reader.GetValue(3);
                        string quantity_item = Convert.ToString(quantity);
                        object price = reader.GetValue(4);
                        string price_item = Convert.ToString(price + " $");
                        object shortdis = reader.GetValue(2);
                        string shortdis_item = Convert.ToString(shortdis);
                        object name = reader.GetValue(1);
                        string name_item = Convert.ToString(name);

                        object creator = reader.GetValue(5);
                        string creator_item = Convert.ToString(creator);
                        object year = reader.GetValue(6);
                        string year_item = Convert.ToString(year);
                        object materials = reader.GetValue(7);
                        string materials_item = Convert.ToString(materials);

                        Items.Add(new Item
                        {
                            Image = image,
                            Name = name_item,
                            ShortText = shortdis_item,
                            Quantity = quantity_item,
                            Price = price_item,
                            Creator = creator_item,
                            Year = year_item,
                            Materials = materials_item
                        });
                    }
                }
                reader.Close();
            };

Долго думал, но понять не могу, как сделать кнопку которая отвечает за свой блок


Ответы (0 шт):