我的WPF应用程序中有一个TreeView。现在根据我的要求,我想导出为Excel格式,但我不知道如何从它开始。
这是我的TreeView Creation C#Code ..
private void TreeView_Loaded(object sender, RoutedEventArgs e)
{
// ... Create a TreeViewItem.
item.Header = "Computer";
item.ItemsSource = new string[] { "Monitor", "CPU", "Mouse" };
// ... Create a second TreeViewItem.
TreeViewItem item2 = new TreeViewItem();
item2.Header = "Outfit";
item2.ItemsSource = new string[] { "Pants", "Shirt", "Hat", "Socks" };
// ... Get TreeView reference and add both items.
var tree = sender as TreeView;
tree.Items.Add(item);
tree.Items.Add(item2);
}
private void TreeView_SelectedItemChanged(object sender,
RoutedPropertyChangedEventArgs<object> e)
{
var tree = sender as TreeView;
// ... Determine type of SelectedItem.
if (tree.SelectedItem is TreeViewItem)
{
// ... Handle a TreeViewItem.
var item = tree.SelectedItem as TreeViewItem;
this.Title = "Selected header: " + item.Header.ToString();
}
else if (tree.SelectedItem is string)
{
// ... Handle a string.
this.Title = "Selected: " + tree.SelectedItem.ToString();
}
}
请帮我把它导出到Excel中。
提前致谢..
答案 0 :(得分:1)
正如您在other question中所提到的,在WPF中,我们将数据绑定到UI控件,因此在您的情况下,您应该有一个绑定到TreeView.ItemsSource
property的集合属性数据。如果您这样做,那么您需要做的就是遍历该集合并直接从中填充您的Excel数据。
因此,您的第一个错误是尝试从TreeView
事件处理程序填充TreeView_Loaded
。我已经告诉过你需要做什么,所以我有点惊讶你完全忽略了我的建议并继续沿着错误的道路前进。 定义集合属性以将数据绑定到TreeView.ItemsSource
属性 ...您还需要声明具有所需属性的自定义数据类型类,例如。一个集合属性将数据绑定到子节点的ItemsSource
属性:
public ObservableCollection<YourClass> Items
{
get { return items; }
set { items = value; NotifyPropertyChanged("Items"); }
}
然后我们将数据绑定到TreeView.ItemsSource
属性:
<TreeView ItemsSource="{Binding Items}" />
最后,我们需要声明一个HierarchicalDataTemplate
来定义每个项目的外观:
<TreeView ItemsSource="{Binding Items}">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding ItemsPropertyInYourClass}">
<TextBlock Text="{Binding NameOfPropertyInYourClass}" />
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
这就是您在TreeView
中正确显示项目的方式...请参阅MSDN上的TreeView and HierarchicalDataTemplate, Step-by-Step页面以获取进一步的帮助。
现在您需要做的就是遍历您的集合以填充您的Excel数据。我现在不是直接浏览所有代码,而是指导您阅读在线教程,所以请查看matijabozicevic.com上的Export data to Excel using C#。
您仍需要阅读MSDN上的Data Binding Overview页面,以获取有关数据绑定的进一步帮助。