ورود

View Full Version : دسترسی به اطلاعات button در itemtemplate و گرفتن اطلاعات لیست باکس



hercool
پنج شنبه 22 آبان 1393, 20:37 عصر
سلام دوستان
من یه مشکل دارم لیست باکسی دارم که توش هر ایتم به کمک یک ایتم تمپلیت ایجاد میشه
و مشکلی که دارم اینه که اگه روی button که درون itemtemplate تعریف کردم کلیک کنم نمیتونم به مقادیر اون ایتمی که اون button کلیک خورده دسترسی داشته باشم
itemtemplate
<Page.Resources>
<DataTemplate x:Key="s">
<StackPanel Orientation="Horizontal">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Name}"/>
<TextBlock Text="{Binding Price_Buy}"/>
</StackPanel>
<StackPanel>
<Button Content="E" Name="Enter" Width="100" Click="Enter_Click_1" >
</Button>
</StackPanel>
</StackPanel>
</DataTemplate>
</Page.Resources>


سعی کردم از این توابع استفاده کنم که نشد
private void Enter_Click_1(object sender, RoutedEventArgs e)
{
MarketWatch item = (MarketWatch)LV_MarketWatch.SelectedItem;
ListBoxItem myListBoxItem =
(ListBoxItem)(LV_MarketWatch.ItemContainerGenerato r.ContainerFromItem(LV_MarketWatch.Items.CurrentIt em));

// Getting the ContentPresenter of myListBoxItem
ContentPresenter myContentPresenter = FindVisualChild<ContentPresenter>(myListBoxItem);

// Finding textBlock from the DataTemplate that is set on that ContentPresenter
DataTemplate myDataTemplate = myContentPresenter.ContentTemplate;

MarketWatch m = (MarketWatch)myContentPresenter.Content;
MessageBox.Show("sssssssssssss"+ m.Name /*+item.Code+"\t"+item.Name*/);
}

private childItem FindVisualChild<childItem>(DependencyObject obj)
where childItem : DependencyObject
{
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(obj); i++)
{
DependencyObject child = VisualTreeHelper.GetChild(obj, i);
if (child != null && child is childItem)
return (childItem)child;
else
{
childItem childOfChild = FindVisualChild<childItem>(child);
if (childOfChild != null)
return childOfChild;
}
}
return null;
}
تنها اگر اول ایتم را انتخاب و بعد روی button کلیک کنم می تونم اطلاعات را بگیرم اما اگر بدون انتخاب ایتم لیست باکس روی button کلیک کنم به اطلاعات دسترسی ندارم
ممنون میشم راهنماییم کنید