我有一个树视图(在左边)和wrappanel(在右边)。 Treeview显示来自XMLDataProvider的XML文件内容如下所示:
<?xml version="1.0" encoding="utf-8"?>
<Documents>
<DocFolder Name="Folder">
<DocFolder DocFolderName="Subfolder">
<DocItem DocItemName="item" />
</DocFolder>
</DocFolder>
</Documents>
是否可以在绑定到TreeView所选项{Binding ElementName=treeView1, Path=SelectedItem}
的WrapPanel中显示不同的内容,具体取决于所选元素的类型(DocFolder或DocItem)?
答案 0 :(得分:0)
这样的事可能吗?
<Control DataContext="{Binding ElementName=treeView1, Path=SelectedItem}"
Template="{Binding ElementName=treeView1, Path=SelectedItem,
Converter={StaticResource selectedItemToDataTemplateConverter}}" />
...和转换器的代码:
public class SelectedItemToDataTemplateConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter,
CultureInfo culture)
{
if (value is DocFolder)
{
return new DocFolderUC(); // Your user control to display DocFolders..
}
else if (value is DocItem)
{
return new DocItemUC(); // Your user control to display DocItems..
}
[...]
答案 1 :(得分:0)
如果将warp面板绑定到所选TreeView项的DataContext,并使用两种类型的DataTemplate自动显示不同的内容,该怎么办?即{Binding ElementName=treeView1, Path=SelectedItem.DataContext}