在构建两个网格中的单选逻辑时需要帮助

本文关键字:单选逻 帮助 网格 构建 两个 | 更新日期: 2023-09-27 18:20:51

我有两个网格,我想一次只选择一个选定的项目,即如果a和B是两个网格那么如果我从a中选择,那么从B中选择的项目应该被取消选择,并且a项目应该在同一次点击中选择,对于B也是如此。

这些是我的网格,我在上面绑定了更改选择的同一事件处理程序。

CurrentServiceGridView.SelectionChanged +=CurrentServiceGridView_SelectionChanged;
AllServicesGridView.SelectionChanged += CurrentServiceGridView_SelectionChanged;

这就是我处理事情的方式。

private void CurrentServiceGridView_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (((Windows.UI.Xaml.Controls.ListViewBase)(sender)).Name == CurrentServiceGridView.Name)
            {
                    AllServicesGridView.SelectedItem = null;
            }
            else
            {
                    CurrentServiceGridView.SelectedItem = null;
            }
        }

请帮帮我。

在构建两个网格中的单选逻辑时需要帮助

您应该处理两个网格的点击事件,在这些事件中,您应该检查活动控件,例如

        if(this.ActiveControl==yourgrid1)
            //yourgrid2.selecteditem=null

我希望它能有所帮助。

我是这样做的

private void CurrentServiceGridView_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (((Windows.UI.Xaml.Controls.ListViewBase)(sender)).Name == CurrentServiceGridView.Name)
            {
                if (AllServicesGridView.SelectedItem != null)
                {
                    AllServicesGridView.SelectionChanged -= CurrentServiceGridView_SelectionChanged;
                    AllServicesGridView.SelectedItem = null;
                    AllServicesGridView.SelectionChanged += CurrentServiceGridView_SelectionChanged;
                }
            }
            else
            {
                if (CurrentServiceGridView.SelectedItem != null)
                {
                    CurrentServiceGridView.SelectionChanged -= CurrentServiceGridView_SelectionChanged;
                    CurrentServiceGridView.SelectedItem = null;
                    CurrentServiceGridView.SelectionChanged += CurrentServiceGridView_SelectionChanged;
                }
            }
        }