导航到Listbox SelectionChanged上的另一个页面时,我希望用它传递textblock值,而不是发送listbox的项目索引。我怎么能这样做?
答案 0 :(得分:0)
为了获得所选的ListBoxItem,您需要做的就是:
private void btnGetSelected_Click(object sender, RoutedEventArgs e)
{
ListBoxItem selectedItem =this.listBox.ItemContainerGenerator.ContainerFromItem(this.listBox.SelectedItem) as ListBoxItem;
var textblock = selectedItem.Content
}
答案 1 :(得分:0)
创建一个新的DataBound应用程序。
查看生成的来源。它显示了如何做到这一点的一个例子。
答案 2 :(得分:0)
请尝试以下方法:
XAML源代码中的ListBox:
<ListBox x:Name="listBox" FontSize="26" SelectionChanged="listBox_SelectionChanged">
<ListBoxItem Content="Item1"/>
<ListBoxItem Content="Item2"/>
<ListBoxItem Content="Item3"/>
<ListBoxItem Content="Item4"/>
<ListBoxItem Content="Item5"/>
<ListBoxItem Content="Item6"/>
</ListBox>
在.xaml.cs代码中:
public void SurahsList_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
string r = ((ListBox)sender).SelectedValue.ToString();
NavigationService.Navigate(new Uri("/page.xaml?selecteItem=" + r, UriKind.Relative));
}
page.xaml.cs中的
代码:
protected override void OnNavigatedTo(NavigationEventArgs e)
{
try
{
string selectedItem= "";
if (NavigationContext.QueryString.TryGetValue("selectedItem", out selectedItem))
{
if(null != selectedItem) {
// your code
}
}
}
catch (Exception ex)
{
if (System.Diagnostics.Debugger.IsAttached)
{
MessageBox.Show(ex.Message);
}
}
}