Войти

Показать полную графическую версию : Windows Phone загрузка данных из БД


knyazik
25-02-2013, 02:34
Здравствуйте!
Создал приложение в которое подключил БД с помощью WCF. Загрузил на 1страницу значения из одной колонки, допустим:
Апельсин
Груша
Яблоко
Как реализовать чтобы по клику на Апельсин открывалась страница ItemInfo.xaml с полной информацией про него?
То есть как сделать чтоб на эту страницу загружалась информация из этой же таблицы БД, только 2, 3 колонки?
Вдруг плохо объяснил, вот пример:

БД:
Наименование Цвет Количество
Апельсин Оранжевый 25
Груша Желтый 14
Яблоко Красный 18

MainPage.xaml:
Вещи:
Апельсин click--> ItemInfo.xaml --> Цвет: Оранжевый, Кол-во: 25
Груша click--> ItemInfo.xaml --> Цвет: Желтый, Кол-во: 14
Яблоко click--> ItemInfo.xaml --> Цвет: Красный, Кол-во: 18

lxa85
25-02-2013, 18:36
Пример кода можете привести?
Название полей в таблице также не помешает.

knyazik
25-02-2013, 19:06
lxa85,
MainPage.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Microsoft.Phone.Controls;
using WP.StundentServiceReference;

namespace WP {

public partial class MainPage { // Конструктор

public MainPage() { InitializeComponent(); }

private void PhoneApplicationPageLoaded(object sender, RoutedEventArgs e)
{
var serviceClient = new StudentService1Client();
serviceClient.GetAllStudentsCompleted += ServiceClientGetAllStudentsCompleted;
serviceClient.GetAllStudentsAsync();
}

void ServiceClientGetAllStudentsCompleted(object sender, StundentServiceReference.GetAllStudentsCompletedEventArgs e)
{
if (e.Result != null)
{ ListBox1.ItemsSource = e.Result; }
}

private void navigateitem(object sender, RoutedEventArgs e)
{
this.NavigationService.Navigate(new Uri("/ItemPage.xaml", UriKind.Relative));
}
}
}


MainPage.xaml:

<phone:PhoneApplicationPage.Resources>
<DataTemplate x:Key="StudentDataTemplate">
<StackPanel Orientation="Horizontal">
<TextBlock Margin="10" Text="{Binding Name}" />
</StackPanel>
</DataTemplate>
</phone:PhoneApplicationPage.Resources>

<Grid x:Name="LayoutRoot" Background="Transparent">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>

<StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
<TextBlock x:Name="ApplicationTitle" Text="МОЕ ПРИЛОЖЕНИЕ"
Style="{StaticResource PhoneTextNormalStyle}"/>
<TextBlock x:Name="PageTitle" Text="имя страницы" Margin="9,-7,0,0"
Style="{StaticResource PhoneTextTitle1Style}"/>
</StackPanel>

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<ListBox ItemsSource="{Binding}"
ItemTemplate="{StaticResource StudentDataTemplate}"
Height="Auto"
Width="460"
Margin="10,10,0,0"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Name="ListBox1"/>
<Button Click="navigateitem"
Content="Button"
Height="72"
HorizontalAlignment="Left"
Margin="142,351,0,0"
Name="button1"
VerticalAlignment="Top"
Width="160" />
</Grid>
</Grid>
</phone:PhoneApplicationPage>

Таблица: Medicaments
Поля: Id, Name, Characters

Из кода XAML я выкинул ненужное(то, что вверху Visual Studio создает автоматически и закомментированный Application Bar)

lxa85
27-02-2013, 00:32
Я не вижу здесь обращений к базе.
Не вижу упоминаний таблицы Medicaments.
Грубо говоря вообще ничего не вижу.
Комментариев не вижу, сути кода не понимаю. :unsure:




© OSzone.net 2001-2012