在执行UserControlCheckbox_Checked之前执行Listbox_SelectionIndex或Lis

本文关键字:执行 SelectionIndex Lis Listbox UserControlCheckbox Checked | 更新日期: 2023-09-27 18:24:14

我在页面中实现了一个列表框。它使用我的用户控件作为其项目。我的用户控件包括文本框、图像和复选框。

情况1:当我单击列表框项目中的图像时,它会转到listbox_SelectionIndex(),然后转到UserControlImage_Tap()然后转至listbox_Tap(。它从主页面的Listbox_selectionindex()中获取selectionindex,在这个selectionindez上,它在用户控制代码中的UserControlImage_Tap()方法中工作,然后移回主页面的Listbox_Tap(。

情况2:现在,如果选中/取消选中复选框,它将直接从用户控制代码中执行UserControlCheckbox_Checked()方法。它会跳过首先从主页执行Listbox_SelectionIndex()。这意味着我无法将selectionindex发送到UserControlCheckbox_Checked()

如何做到这一点?


我尝试在XAML中为用户控件中的复选框设置IsHitTestVisible="False"。它起作用了,现在首先执行ListBox_SelectionChanged(),但同样没有用,因为在我的ListBox_SectionChanged(()中,我有一个导航到另一个页面的页面。所以当我选中复选框时,在选中/取消选中它之前,用户正在进行导航。

  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;
        }
    }

在执行UserControlCheckbox_Checked之前执行Listbox_SelectionIndex或Lis

尝试添加Try/Catch或If语句-If就是那个chackbox chacked,执行并继续。。。否则就继续。。。