1

PreviewMouseButton イベントを使用して、アイテムを選択できるかどうかを検証しています。これは、ユーザーが自動的にではなく手動で選択した場合にのみ検証が行われるようにするためです。

検証の一環として、MessageBox を表示して、ユーザーが本当に選択を変更したいかどうかを確認します。ユーザーが「はい」と言ったら、選択を実行する必要があります。そうでない場合、選択は実行されません。

問題は、メッセージボックスの確認で「はい」を選択した後でも、アイテムを選択できないことです。

何が欠けているのか教えてください。

    private void ListBox_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
    {
        if(!ParentViewModel.CanChangeList())
        {
            e.Handled = true;
        }
    }


    public bool CanChangeTree()
    {
        if (someCondition)
        {
            MessageBoxResult objResult = MessageBox.Show("Are You sure You want to change?", "Confirmation", MessageBoxButton.YesNo);
            if (objResult == MessageBoxResult.Yes)
            {
                return true;
            }else
            {
                return false;
            }
        }
        return true;
    }
4

1 に答える 1

0

この問題の原因は、メッセージボックスの表示です(理由はわかりませんが)。

メッセージボックスに固執する場合は、メッセージを表示する前に、クリックされているListBoxItemを取得する必要があります。次に、許可されている場合は、選択したアイテムを自分で設定します。

于 2013-02-10T17:08:50.167 に答える