你好,我正在使用一个WPF应用程序,在TreeView上展开项目之前,我希望有一个事件触发。我知道目前还没有这样的活动,但我不知道如何添加一个我正在这样做的方式,所以任何帮助都将受到感谢。
这是xaml。
<TreeView x:Name="TreeView" Margin="20">
<TreeView.Resources>
<Style TargetType="{x:Type TreeViewItem}">
<!-- Some style -->
</Style>
<DataTemplate DataType="{x:Type models:DirectoryPathItem}">
<!-- some template -->
</DataTemplate>
</TreeView.Resources>
</TreeView>我正在加载后面的代码。
private void LoadBaseDirectories()
{
var directoryInfo = new DirectoryInfo(@"C:\");
var directories = directoryInfo.GetDirectories();
foreach (var directory in directories)
{
TreeView.Items.Add(new DirectoryPathItem()
{
Children = new ObservableCollection<PathItem>(),
Path = directory.FullName,
Header = directory.Name
});
}
}在展开TreeViewItem之前,是否有一种方法可以调用事件,以便加载子事件?
发布于 2018-10-09 13:20:04
在实际展开之前加载子项可能会导致用户不理解为什么列表为空的响应UI。
我建议添加一个表示后台任务的项目(例如:某种类型的加载旋转器),并在发现它们时立即添加适当的项。
一旦完成,您可以删除加载旋转项。
这样,您将不需要一个新的事件,用户将了解发生了什么。
https://stackoverflow.com/questions/52721657
复制相似问题