AllowDrop仅用于某些ListBoxItems
|
我有一个列表框,该列表框表示目录的内容。我只允许删除代表目录本身的那些项目。我尝试了两种方法:
首先,我将列表框的itemsource设置为所有目录内容的CompositeCollection,并尝试使用以下命令进行迭代:
foreach (ListBoxItem lbItem in directoryExplorer.Items)
{
MessageBox.Show(lbItem.DataContext.GetType().ToString());
}
每个项目的消息框都带有\'Directory \'或\'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);
}
但后来它变成空白。
没有找到相关结果
已邀请:
1 个回复
豆兢