Aynı örnek ile devam edersek markalar anasayfasındaki MarkalarL controlündeki kampanya alışveriş bilgisi butonuna ve alışverişe katıl butonuna erişmek için(click vb. Eventlerine erişmek):
void MarkalarL_MouseEnter(object sender, MouseEventArgs e)
{
//ItemsControl'ün içindeki ilk eleman, bir ItemsPresenter.
ItemsPresenter itemsPresenter = VisualTreeHelper.GetChild(this.MarkalarL, 0) as ItemsPresenter;
//ItemsPresenter, kendisi en dışa bir stack panel koyuyor.
Panel standartPanel = VisualTreeHelper.GetChild(itemsPresenter, 0) as Panel;
//bu panel'in çocukları birer content presenter.
foreach (ContentPresenter contentPresenter in standartPanel.Children)
{
//content presenter'ın içinde, bizim koyduğumuz stack panel var.
StackPanel myStackPanel = VisualTreeHelper.GetChild(contentPresenter, 0) as StackPanel;
///ElementAt() metodu, bir extension metot.
Button myButton = myStackPanel.Children.ElementAt(2) as Button;
Button myButton1 = myStackPanel.Children.ElementAt(3) as Button;
myButton.MouseEnter += new MouseEventHandler(myButton_MouseEnter);
myButton1.Click += new RoutedEventHandler(myButton1_Click);
}
}
void myButton1_Click(object sender, RoutedEventArgs e)
{
Button buttonsender = sender as Button;
Markalar markatosend = buttonsender.DataContext as Markalar;
int iletilecekmarkaID = markatosend.MarkaId;
this.frame2.Navigate(new Uri(String.Format("/MarkaUrunKategorileriSayfasi.xaml?markaid={0}", iletilecekmarkaID), UriKind.Relative));
}
void myButton_MouseEnter(object sender, MouseEventArgs e)
{
Button buttonsender = sender as Button;
Markalar secilenmarka = buttonsender.DataContext as Markalar;
System.DateTime date3 = DateTime.Now;
System.TimeSpan diff3 = secilenmarka.MarkaKamapanya_BitisTarihi.Value.Subtract(date3);
buttonsender.Content = "Kapmanyanın bitmesine"+" "+diff3.Days.ToString() + "gün" + diff3.Hours + "saat" + diff3.Minutes + "dk" + diff3.Seconds+"saniye"+" " + "kaldı";
}
Hiç yorum yok:
Yorum Gönder