0

我有一个树视图(左侧)和包装面板(右侧)。来自 XMLDataProvider 的 Treeview 显示内容的 XML 文件如下所示:

<?xml version="1.0" encoding="utf-8"?>
<Documents>
  <DocFolder Name="Folder">
    <DocFolder DocFolderName="Subfolder">
      <DocItem DocItemName="item" />
    </DocFolder>
  </DocFolder>
</Documents>

{Binding ElementName=treeView1, Path=SelectedItem}是否可以根据所选元素的类型(DocFolder 或 DocItem)在绑定到 TreeView 所选项目的 WrapPanel 中显示不同的内容?

4

2 回答 2

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..
        }
        [...]
于 2012-08-14T12:34:50.060 回答
0

如果您将变形面板绑定到所选 TreeView 项的 DataContext,并使用两个类型化的 DataTemplate 自动显示不同的内容怎么办?IE{Binding ElementName=treeView1, Path=SelectedItem.DataContext}

于 2012-08-14T13:56:01.627 回答