簡體   English   中英

列表框中的selectedItem和焦點WPF

[英]selectedItem in listbox and focus wpf

我在一個窗口中有2個listBoxes,一個挨着另一個,並帶有將項目從一個listBox復制到另一個的按鈕。 當從第一個listBox中選擇一項時,將啟用“復制”按鈕,並禁用“刪除”按鈕。 當我為第二個listBox選擇一個項目時,復制按鈕被禁用,而刪除按鈕被啟用。

當您在列表框之一中選擇一個項目時,按鈕毫無問題地更改,在列表框失去焦點並且您選擇了與選擇的相同的項目之后,按鈕不會變回原樣。

我了解問題是所選項目未更改,因此不會觸發該事件。

當listBox失去焦點時將所選項目設置為null無效,因為我需要選擇的項目。 我需要找到一種方法來在listBox獲得焦點時重新選擇選定的項目,或者只是觸發選定項目更改的偶數。 有什么建議么?

您可以嘗試ListBox.LostFocus事件,並將SelectedItem屬性設置為null。

private void ListBox_LostFocus(object sender, RoutedEventArgs e)
{
    ((ListBox)sender).SelectedItem = null;
}

使用ListBox.GotFocus事件檢查是否存在SelectedItem,存儲索引,刪除SelectedItem,然后使用存儲的索引重置SelectedItem。 像這樣

private void ListBox_GotFocus(object sender, RoutedEventArgs e)
{
    ListBox lb = (ListBox)sender;
    if(lb.SelectedItem != null )
    {
        int index = lb.SelectedIndex;
        lb.SelectedItem = null;
        lb.SelectedIndex = index;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM