2011-06-13 19 views
0

我有一個列表框表示一個direcory的內容。我想只允許放在代表目錄本身的項目上。我已經試過兩種方法:AllowDrop只有一些ListBoxItems

首先我ListBox的的ItemSource設置的所有目錄內容compositeCollection並試圖通過那些迭代:

foreach (ListBoxItem lbItem in directoryExplorer.Items) 
{ 
    MessageBox.Show(lbItem.DataContext.GetType().ToString()); 
} 

的消息框出現與「目錄」或每個項目的'UserFile'。我希望能夠訪問這些項目,檢查它們代表的內容,並根據需要設置AllowDrop。

我的第二個辦法是增加單個項目,像這樣:

ListBoxItem的NXT;

foreach (Directory d in dir.childdirs) 
{ 
    MessageBox.Show(d.name); 
    nxt = new ListBoxItem(); 
    nxt.DataContext = d; 
    nxt.AllowDrop = true; 
    nxt.Name = d.name; 
    directoryExplorer.Items.Add(nxt); 
} 
foreach (UserFile f in dir.childfiles) 
{ 
    MessageBox.Show(f.name); 
    nxt = new ListBoxItem(); 
    nxt.AllowDrop = false; 
    nxt.DataContext = f; 
    nxt.Name = f.name; 
    directoryExplorer.Items.Add(nxt); 
} 

但後來它只是空白。

+0

你需要在你的列表框中放置物品嗎? – 2011-06-13 11:48:55

回答