我在页面中实施了列表框。它使用我的用户控件作为其项目。我的用户控件包括文本框,图片和复选框。
案例1: 当我点击列表框项目中的图片时,它会转到 Listbox_SelectionIndex(),然后转到 UserControlImage_Tap(),然后转到 Listbox_Tap()。它从主页中的Listbox_SelectionIndex()中获取selectionindex,在此selectionindex上,它在usercontrol代码中的UserControlImage_Tap()方法中工作,然后返回到主页中的Listbox_Tap()。
案例2: 现在,如果选中/取消选中该复选框,它将直接从usercontrol代码执行 UserControlCheckbox_Checked()方法。它首先从主页跳过执行 Listbox_SelectionIndex()。这意味着我无法将selectionindex发送到 UserControlCheckbox_Checked()。
如何实现这一目标?
我尝试在XAML中为usercontrol中的复选框设置IsHitTestVisible =“False”。它工作,现在ListBox_SelectionChanged()首先执行,但再次没有用,因为在我的ListBox_SelectionChanged()中我导航到另一个页面。所以当我选中复选框时,在检查/取消选中之前,用户正在进行导航。
public void ListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (ListBoxHindi.SelectedIndex != -1)
{
NavigationIndexHindi=ListBoxHindi.SelectedIndex;
singletonInstance.HindiTouchedIndex = NavigationIndexHindi;
NavigationService.Navigate(new Uri(singletonInstance.GotoContentDisplayPage + "?language=" + LanguageType + "&bookToOpenIndex=" + NavigationIndexHindi, UriKind.Relative));
ListBoxHindi.SelectedIndex = -1;
}
}
public void ListBox_Tap(object sender, System.Windows.Input.GestureEventArgs e)
{
if (ListBoxHindi.SelectedIndex != -1)
{
singletonInstance.HindiTouchedIndex = ListBoxHindi.SelectedIndex;
ListBoxHindi.SelectedIndex = -1;
}
}
答案 0 :(得分:0)
尝试添加Try / Catch或If语句 - 如果选中该复选框,则执行并继续... Else只需继续...