2013-10-07 48 views
0

我有listBox(在代碼後面添加),並且當Items.Count> 4時我想設置最後一個項目的可見性。我有充滿按鈕的列表框。WPF在列表框中設置項目的可見性 - 後面的代碼

private void movingOfButtons(ListBox list, int index) 
    { 
     Control previousButton = (Control)list.Items.GetItemAt(list.Items.Count - 1); 
     int itemCounts = ktery.Items.Count; 

     indexButton = index; 
     // create new buttons 
     addNewButton("Sound"); 
     addNewButton("addSound"); 
     mainCycle(list); 

     // this does not work - it show only messageBox 
     if (itemCounts >= 4) 
     { 
      MessageBox.Show("" + previousButton.Name); 
      previousButton.Visibility = Visibility.Collapsed; 
     } 

     (list).Items.RemoveAt(index); 
    } 

This previousButton.Visibility does not work。

錯誤在哪裏?

+0

嘗試Visibility.Hidden – Tico

+0

你必須點擊OK,以進行下一步一旦你調用MessageBox.Show其他UI線程將等待,你將永遠不會設置可見性:) :) –

+0

不工作.. –

回答

0

我發現我的錯誤:

我要「刷新」,在列表框中的項目..;)

mainCycle(list); 

previousButton = (Control)list.Items.GetItemAt(list.Items.Count - 1); 

     if (itemCounts >= 4) 
     { 
      MessageBox.Show("" + previousButton.Name); 
      previousButton.Visibility = Visibility.Collapsed; 
     } 
+0

我們都知道mainCycle在做什麼?這個問題如何幫助有人在這個線程上遇到類似的可見性問題? Idk ..很高興你解決它反正。 –

+0

@devhedgehog我只發佈重要的代碼。但確定: addNewButton使用名稱,索引創建新按鈕,並且此方法將該按鈕放到全局列表中。 mainCycle只是將這些按鈕從列表中放到列表框中... 這就是所有......但我認爲這並不重要。 :) –

+0

所以你重置你的ListBox每次你通過做這樣的事情添加一個按鈕listBox.ItemsSource = myList?那很糟。你失去了SelectedItem你失去了滾動位置。就像坐椅子離開某個坐着哈哈的人。這意味着。你有沒有使用過ObservableCollection? –

相關問題