Login den sonra kullanıcının karşısında olan ana sayfa diyebileceğimiz bir sayfadır.Bu sayfanın tasarımında sol üstten başlarsak logo kullanıcı session ile alakalı hesabım yardım çıkış ve sepet bilgisi yer almakta bunların hepsi bir yatay bir stack içersinde bir altında menü yer almakta onun altında ana kısımda ise bir frame var ve bu frame ile sayfaları bu alana çağırabiliyoruz.En dipte ise footer var company bilgisini göstermekte.Sayfanın şablonu aşagıdaki gibidir.
Açılır menusunun tasarımında blend de oluşturulan bir efekt yer almakta tüm markalar butonun üzerine gelindiğinde uzayarak açılan ve contexten ayrıldığında yada en üsteki ^ menü aracına tıklanıldığında benzer şekilde küçülerek kaybolan bir menü.VS tarafında ise su şekilde:
Menü aslında stack panele itilen butonlardan oluşmakta dolayısı ile her menü elemanına tıkladığımızda aşağıdaki buton kontrolü çalışır.
void menubutonu_Click(object sender, RoutedEventArgs e)
{
Button buttonsender = sender as Button;
Markalar markatosend = buttonsender.DataContext as Markalar;
int iletilecekmarkaID = markatosend.MarkaId;
this.MYFRAME.Navigate(new Uri(String.Format("/MarkaUrunKategorileriSayfasi.xaml?markaid={0}", iletilecekmarkaID), UriKind.Relative));
}
Burada hangi butona tıklandığını bilmek için (sender vasıtası ile) butonun xaml tarafında kendi kendi ile bind edilmesi gerekir.Böylece iletilecek marka ıd bilgisi ile istenilen markanın kategorileri MYFRAME ye yüklenmiş olur.
Menülere veri tabanından veri aktarımı için:
Web Servis:
[OperationContract]
List<Markalar> MarkalariGetir();
public List<Markalar> MarkalariGetir()
{
var markalistesi = from marka in veri.Markalars
select marka;
List<Markalar> tummarkalistesi = markalistesi.ToList<Markalar>();
List<Markalar> gecerlimarkalistesi = new List<Markalar>();
foreach (Markalar markax in tummarkalistesi)
{
System.DateTime date3 = DateTime.Now;
System.TimeSpan diff3 = markax.MarkaKamapanya_BitisTarihi.Value.Subtract(date3);
if (diff3.Days>0)
{
gecerlimarkalistesi.Add(markax);
}
}
return gecerlimarkalistesi;
}
Anasayfa.xaml.cs:
webservis.MarkalariGetirAsync();
webservis.MarkalariGetirCompleted += new EventHandler<MarkalariGetirCompletedEventArgs>(webservis_MarkalariGetirCompleted);
void webservis_MarkalariGetirCompleted(object sender, MarkalariGetirCompletedEventArgs e)
{
this.TumMarkalar.ItemsSource = e.Result;
}
TümMarkalar bizim tüm markaları gösteren açılır kapanır menumuzdur dolayısı ile veri tabanından gelen sonuçlar bu alana aktarılır.Peki xaml tarafında neler olur nasıl bir Bind işlemi vardır.
Anasayfa.xaml:
<ItemsControl x:Name="TumMarkalar" Width="160" Background="AliceBlue">
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel Background="AliceBlue">
<Button Content="{Binding MarkaAdi}" FontSize="16.667" DataContext="{Binding}" Style="{StaticResource altmenubutonstyle}"/>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
Hiç yorum yok:
Yorum Gönder