我使用 WPF TreeView 元素创建了一个 Active Directory 对象浏览器,但我只想将 OU 添加到我的树中。我觉得我已经很接近了,这是迄今为止我的 Item.Expanded 事件处理程序的代码。这一切都有效,但它添加了每个对象,而我想过滤掉非 OU 对象:
private void item_Expanded(object sender, RoutedEventArgs e)
{
TreeViewItem item = (TreeViewItem)e.OriginalSource;
item.Items.Clear();
DirectoryEntry de;
if (item.Tag is Domain)
{
Domain dom = (Domain)item.Tag;
de = dom.GetDirectoryEntry();
}
else
{
de = (DirectoryEntry)item.Tag;
}
try
{
foreach (DirectoryEntry dirEntry in de.Children)
{
TreeViewItem newItem = new TreeViewItem();
newItem.Tag = dirEntry;
newItem.Header = dirEntry.Name;
newItem.Items.Add("*");
}
}
catch (Exception ex)
{
//Exception!
textBox.Text = ex.ToString();
}
}
我有类似的东西
if (dirEntry.Properties["objectClass"].Value.ToString() == "organizationalUnit")
但这不起作用(objectClass 是一个值数组,因此与字符串比较不起作用)。