如何进入扩展的TreeViewItem的所有TreeViewItems

时间:2017-02-03 08:05:45

标签: wpf treeview

在我的WindowTreeViewTreeView.ItemsSource绑定到我的数据(分层数据结构)。当我展开当前滚动条位置底部的一些TreeViewItem时,我的子项被隐藏,我必须滚动才能看到它们。有没有办法让所有扩展项目的子项目进入视图?

我试过这个,但没有工作:

public void TreeViewItem_Expanded(object sender, RoutedEventArgs e)
{
    TreeViewItem tvi = e.OriginalSource as TreeViewItem;
    if (tvi != null)
    {
        Debug.WriteLine("TreeNode '{0}' was expanded", tvi.Header);
        tvi.BringIntoView();
    }
}

1 个答案:

答案 0 :(得分:0)

基本上,选择最后一个子项并在展开项目时将其带入视图。如果没有子项目,请将项目本身放入视图中。

棘手的部分是,子事件在执行事件时不一定可用,因此我建议您检查import org.apache.commons.io.FilenameUtils; import org.apache.jmeter.services.FileServer; import java.text.*; import java.io.*; import java.util.*; try { String email = vars.get("emailPrefix") + "+" + vars.get("environment") + "-jm-" + vars.get("randomEmailNumber")+"@someEmail.com"; log.info(email); String separator = System.getProperty("file.separator"); File mFile = new File(FileServer.getFileServer().getBaseDir() + separator + "investors_" + vars.get("environment") + ".csv"); BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(mFile), "UTF8")); String result = ""; String line = ""; while((line = br.readLine()) != null){ result = result + "\n" + line; } result = email + "," + result; FileOutputStream fos = new FileOutputStream(mFile); fos.write(result.getBytes()); fos.flush(); } catch(Exception e) { System.out.println("Exception in 2 1 4 /getContactInformation::Email writer:" + e.toString()); throw e; } ,如果尚未完成,请订阅ItemContainerGenerator.Status事件。

以下代码仅使用静态项进行测试,如果它对动态数据源造成问题,我可能需要重新检查一些细节。

ItemContainerGenerator.StatusChanged