Hi I have a listbox binded to a xml file, and each item I gave them a button data template so I can easily register a click event to each item.
I would love to get the clicked button's content to do some query on.
Here is my code
XAML
<ListBox Name="listBox1" >
<ListBox.ItemsSource>
<Binding Source="{StaticResource keywordLib}" XPath="Position/Keyword/Word"/>
</ListBox.ItemsSource>
<ListBox.ItemTemplate>
<DataTemplate>
<Button Content="{Binding}" Click="keyword_Click"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
After hours of googling for solutions. I know I should use sender from the click event, and that worked fine for a normal button, didn't word here.
private void keyword_Click(Object sender, RoutedEventArgs e)
{
Button btn = (Button)sender;
String keyword = btn.Content.ToString();
MessageBox.Show(keyword);
}
The messagebox showed "System.Xml.XmlElement". Instead of the button content.
Many thanks to anyone could help me out on this. I spend so much on this, and I could guess the solution is just one line code.
I know you got the answer but, this is another type to get the content of button.
private void keyword_Click(Object sender, RoutedEventArgs e)
{
var keyword= (e.Source as Button).Content.ToString();
MessageBox.Show(keyword);
}