Witam.
Tworzę aplikację, która operuje na bazie w Azure. Potrzebuję pomocy w 2 problemach:
- Struktura tabeli wygląda tak: 1. ID 2. Category 3. Type 4. Product (Np 1, Żywność, Słodycze, Czekolada). Chcę żeby w pierwszym listboxie wyświetlały się wszystkie obiekty z kolumny Category (udało mi się to zrobić).
Kod:
private async void ViewCategory() //wyświetlenie danych z tabeli Category w listboxie
{
MobileServiceCollection<string, string> result = null;
MobileServiceInvalidOperationException exception = null;
try
{
//lista obiektów Category
result = await todoTable
.Select(todoItem => todoItem.Category)
.ToCollectionAsync();
}
catch (MobileServiceInvalidOperationException ex)
{
exception = ex;
}
if (exception != null)
{
await new MessageDialog(exception.Message, "Error loading items").ShowAsync();
}
else
{
CategoryBox.ItemsSource = result.Distinct(); //zwrócenie listy Category
}
}
W drugim listboxie powinny wyświetlić się elementy kolumny Type, gdzie wartość kolumny Category powinna taka sama jak ta zaznaczona w pierwszym listboxie (jak ktoś wybierze w 1 listboxie element Żywność, to w 2 powinny mu pojawić się wartości np. słodycze, nabiał itp.) i potem podobnie w 3 kontrolce. Próbowałam takiego kodu, ale nie działa.
private async void ViewType(string cat) //wyświetlenie danych z tabeli Type w listboxie
{
MobileServiceCollection<string, string> result = null;
MobileServiceInvalidOperationException exception = null;
try
{
//przeszukanie listy obiektów Category i zwrócenie elementów kolumny Type
result = await todoTable.Where(TodoItem => TodoItem.Category == cat)//porównanie wartości
.Select(todoItem => todoItem.Type)
.ToCollectionAsync();
}
catch (MobileServiceInvalidOperationException ex)
{
exception = ex;
}
if (exception != null)
{
await new MessageDialog(exception.Message, "Error loading items").ShowAsync();
}
else
{
TypeBox.ItemsSource = result.Distinct(); //zwrócenie listy Type
}
}
private void TypeBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
string _category = CategoryBox.SelectedItem.ToString();//pobranie zaznaczonego elementu z 1 listboxa
ViewType(_category);
}
Co jest nie tak? Gdzie powinnam wywołać tę funkcję - w kodzie listbox czy w inicjatorze?
- W jaki sposób pobrać datę z kontrolki DatePicker i dodać ją do bazy, oraz potem ją z niej pobrać?